import datetime
class MyForm(forms.Form):
date = forms.DateField(...)
def clean_date(self):
date = self.cleaned_data['date']
if date < datetime.date.today():
raise forms.ValidationError("The date cannot be in the past!")
return date
def present_or_future_date(value):
if value < datetime.date.today():
raise forms.ValidationError("The date cannot be in the past!")
return value
class MyForm(forms.Form):
date = forms.DateField(...
validators=[present_or_future_date])
您可以在表单中添加一个
clean()
方法,以确保日期不在过去。见http://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute
另一个有用的解决方案是使用validators关键字参数将验证绑定到字段。这是保持表单代码清晰并支持验证逻辑重用的一种简便方法。例如
如果您使用的是Django 1.2+,并且您的模型将始终强制执行此规则,那么您还可以查看model validation。其优点是基于模型的任何模型表单都将自动使用此验证。
相关问题 更多 >
编程相关推荐