Django中的表单 - 无法通过“cleaning_data”

时间:2009-10-10 08:44:00

标签: python django

我有一个允许用户上传文本和文件的表单。但是,即使用户没有上传文件(文件是可选的),我也希望它有效。然而,在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 个答案:

答案 0 :(得分:4)

您必须为the documentation

中提到的可选字段设置required=False

在您的情况下,以下行应该可以解决问题:

    file = forms.FileField(required=False)