我无法获取我的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'
那有什么不对?
答案 0 :(得分:0)
应该是
pic_upload = forms.ImageField(required=False)
blank=True
用于模型定义,而不是表单。
答案 1 :(得分:0)
放置blank=True
时收到错误,因为它是表单字段,而不是模型字段。请改用required=False
。