我有一个像这样的django形式:
class PatientForm(forms.Form):
patient_id = forms.IntegerField()
patient_national_code = forms.CharField()
我有一个自定义的clean_方法:
def clean_patient_national_code(self):
patient_national_code = self.cleaned_data['patient_national_code']
if not patient_national_code:
raise forms.ValidationError("My Error!")
return patient_national_code
但是当我尝试提交一个表格,其national_code字段为空(并且应该返回“我的错误!”)时,它会返回"This field is required."
错误。我认为这是django的默认验证器返回的错误,我该怎么做才能获得"My Error!"
而不是django的默认错误?
答案 0 :(得分:2)
在字段定义中添加required=False
,在这种情况下,django将不执行检查并将调用您的clean方法。
但是,请注意,当此字段不在表单数据中时,以self.cleaned_data['patient_national_code']
方式访问该字段可能会导致KeyError
。