我有一张包含开始日期和结束日期的表单。如何清理表单,以便结束日期在开始日期之后。我可以清理一个字段,但不确定如何在将字段与另一个字段进行比较时清理字段。此外,当这出错时,我希望能够在{{ form.end_date.errors }}
中进行错误渲染,而不是一般部分。有没有办法用forms.ValidationError
class ContractChangeForm(forms.ModelForm):
...
def clean(self):
start_date = self.cleaned_data['start_date']
end_date = self.cleaned_data['end_date']
if end_date < start_date:
raise forms.ValidationError(u'Error: The ending date must come after the starting date.',code='invalid_date')
return end_date
答案 0 :(得分:0)
您可以使用add_error()
方法将错误附加到特定字段:
if end_date < start_date:
self.add_error('field_name','Error text message....')
答案 1 :(得分:0)
您可以传递dict
raise forms.ValidationError({'end_date': u'Error: The ending date must come after the starting date.'})