2009-10-10 6 views
2

J'ai un formulaire qui permet aux utilisateurs de télécharger du texte et un fichier. Cependant, je voudrais le rendre valide même si l'utilisateur ne télécharge pas le fichier (le fichier est facultatif). Cependant, dans Django, ça ne me permet pas de passer "clean (self)". Je veux juste simple - si la zone de texte, passez. Si aucun texte, retour erreur.Formulaires dans Django - ne peut pas passer "nettoyé_data"

class PieceForm(forms.Form): 
     text = forms.CharField(max_length=600) 
     file = forms.FileField() 
     def clean(self): 
      cleaned_data = self.cleaned_data 
      text = cleaned_data.get('text') 
      file = cleaned_data.get('file') 
      return cleaned_data 

Dans mes vues ...

form = PieceForm(request.POST, request.FILES) 
if form.is_valid(): 
    print 'It's valid!' ........this only prints if there is a file! 

Répondre

4

Vous devez définir required=False pour les champs qui sont facultatifs comme indiqué dans the documentation

Dans votre cas, la ligne suivante devrait faire l'affaire:

+0

Merci, raté cette partie. – TIMEX

+0

+++ 1 :-) aus .at – Flavius

Questions connexes