我无法验证日期。 如果输入的日期少于今天,我的目标是提出错误。
forms.py
class user(forms.ModelForm):
def clean(self):
date = self.cleaned_data['date_one']
if date < datetime.date.now()
raise forms.ValidationError('No past Date')
return date
class Meta:
model = user_model
widgets = {
'date_one': forms.DateInput(attrs={'class':'datepicker'}),
}
fields = '__all__'
models.py
class user_model(models.Model):
name = models.CharField(max_length=20,null=True)
contact = models.IntegerField(null=True)
email = models.EmailField(max_length=50,null=True)
date_one = models.DateField(null=True)
def __str__(self):
return self.name
这是错误
Exception Type: AttributeError
Exception Value: 'str' object has no attribute 'get'
答案 0 :(得分:3)
该代码应该放在clean_date_one
中,而不是clean
。
def clean_date_one(self):
date = self.cleaned_data['date_one']
if date < datetime.date.now()
raise forms.ValidationError('No past Date')
return date
您遇到该错误的原因是clean
用于验证整个表单,并且需要返回所有值的字典而不是一个。