django 1.7:allow_empty_file在ImageField中不起作用

时间:2015-02-26 02:26:48

标签: python django

我无法获取我的Django表单以使ImageField可选。

如果我这样做

class TestUploadForm(forms.Form):
    pic_upload=forms.ImageField(allow_empty_file=True)
form2=TestUploadForm(request.POST,request.FILES)
pdb.set_trace()

然后将文件传递给它,很高兴:

(Pdb) request.FILES
<MultiValueDict: {u'pic_upload': [<InMemoryUploadedFile: test2.png (image/png)>]}>
(Pdb) form2.is_valid()
True

如果我没有将文件传递给它,虽然allow_empty_file设置为True,但它不会验证:

(Pdb) request.FILES
<MultiValueDict: {}>
(Pdb) form2.is_valid()
False

如果我将blank=True代替allow_empty_file=True,我会收到错误:

__init__() got an unexpected keyword argument 'blank'

那有什么不对?

2 个答案:

答案 0 :(得分:0)

应该是

pic_upload = forms.ImageField(required=False)

blank=True用于模型定义,而不是表单。

答案 1 :(得分:0)

放置blank=True时收到错误,因为它是表单字段,而不是模型字段。请改用required=False