在Django 1.4 documentation中,它表示首先运行clean_<fieldname>
方法,然后执行表单clean
方法。
我有以下代码示例。该表单与FormPreview一起使用。当pmid
字段在表单中为空时,它应该抛出ValidationError
异常,但不会发生。
class MyForm(forms.Form):
pmid = forms.CharField()
.. other fields ..
def clean(self):
cd = super(MyForm, self).clean()
cd['pmid'] # returns KeyError and it's not in cd
return cd
我不会覆盖任何clean_<field>
方法。
答案 0 :(得分:1)
首先,如果你想要做的只是确保一个字段不是空白,那么只需添加required=True
即可。例如:
class MyForm(forms.Form):
pmid = forms.CharField(required=True)
...
你已经完成了。
但是,即使您不能这样做,仍然也不会在clean
中验证它,而是在文档描述的clean_<fieldname>
中验证。< / p>
def clean_pmid(self):
pmid = self.cleaned_data.get('pmid')
if not pmid:
raise forms.ValidationError('pmid cannot be blank')
return pmid