Формы в Django - не могут пройти "cleaned_data" - PullRequest
2 голосов
/ 10 октября 2009

У меня есть форма, которая позволяет пользователям загружать текст и файл. Однако я хотел бы сделать его действительным, даже если пользователь не загружает файл (файл необязательный). Тем не менее, в Django, это не позволяет мне пройти "чистое (само)". Я просто хочу, чтобы это было просто - если текстовое поле, пройдите. Если текст отсутствует, верните ошибку.

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!

1 Ответ

4 голосов
/ 10 октября 2009

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

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

    file = forms.FileField(required=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...