在Django中,如何在forms.py中访问文件字段?

时间:2011-06-22 22:55:05

标签: django django-forms django-file-upload

我在Django应用程序的forms.py中有这个表单类:

class EmailForm(EmailFormWithoutAttachment):
    attachment = forms.FileField()

我想通过clean函数访问forms.py上传的文件进行验证,以验证其名称。

def clean_attachment(self):
    if self.data['attachment'].name == "someFileName.txt":
        raise forms.ValidationError('This file is not allowed.')
    return self.data['attachment']

然而,问题是错误指出“QueryDict”中找不到“附件”。我绑定request.FILES到提交表单。我也在我的表单上使用enctype =“multipart / form-data”。我想知道在forms.py中访问FileField数据的正确方法是什么。

谢谢。

1 个答案:

答案 0 :(得分:4)

使用self.cleaned_data['attachment']代替self.data['attachment']