2009-10-10 6 views
2

У меня есть форма, которая позволяет пользователям загружать текст и файл. Тем не менее, я хотел бы сделать его действительным, даже если пользователь не загружает файл (файл является необязательным). Тем не менее, в Django это не позволяет мне пройти «чистую (я)». Я просто хочу, чтобы это было просто - если текстовое поле, пройдите. Если текст отсутствует, возвращайте ошибку.Формы в Django - не могут пройти «cleaned_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 

В моих взглядов ...

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

ответ

4

Вы должны установить required=False для полей, которые не являются обязательными, как указано в the documentation

В вашем случае, следующая строка должна сделать трюк:

file = forms.FileField(required=False) 
+0

Благодарим Вас, пропустил эту часть. – TIMEX

+0

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

Смежные вопросы