Nav*_*777 3 python django django-forms
我正在写一个Django网站,我正在为表单编写自己的验证:
class CreateJobOpportunityForm(forms.Form):
subject = forms.CharField(max_length=30)
start_date = forms.DateField(widget=SelectDateWidget)
end_date = forms.DateField(widget=SelectDateWidget)
def clean_start_date(self):
start_date = self.cleaned_data['start_date']
end_date = self.cleaned_data['end_date']
if start_date > end_date :
raise forms.ValidationError("Start date should be before end date.")
return start_date
Run Code Online (Sandbox Code Playgroud)
但是当start_date小于end_date时,它会说:
KeyError at /create_job_opportunity
'end_date'
Run Code Online (Sandbox Code Playgroud)
为什么不认识'end_date'钥匙?
由于一个字段依赖于另一个字段,因此最好clean是在表单的方法中进行清理,而不是使用单个clean_field方法.
def clean(self):
cleaned_data = super(CreateJobOpportunityForm, self).clean()
end_date = cleaned_data['end_date']
start_date = cleaned_data['start_date']
# do your cleaning here
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
否则,你必须确保你的end_date领域之前得到清理start_date.
| 归档时间: |
|
| 查看次数: |
6676 次 |
| 最近记录: |