【发布时间】:2019-03-11 19:33:53
【问题描述】:
我有一个表单,我正在尝试添加一个干净的方法来确保输入的日期相同。即使日期不同,表格也恰好通过了。我相信问题出在我的干净方法中,但由于它没有传递错误,我不确定是什么导致了问题。我将不胜感激。
class LessonForm(forms.ModelForm):
lesson_instrument = forms.ChoiceField(choices=instrument_list, widget=forms.Select(attrs={'class' : 'form-control', 'required' : 'True'}))
lesson_datetime_start = forms.DateTimeField(input_formats=['%Y-%m-%d %I:%M %p'], widget=forms.DateTimeInput(attrs={'class': 'form-control', 'placeholder':'YYYY-MM-DD Hour:Minute am/pm'}), validators=[validate_date1])
lesson_datetime_end = forms.DateTimeField(input_formats=['%Y-%m-%d %I:%M %p'], required=False, widget=forms.DateTimeInput(attrs={'class': 'form-control', 'placeholder':'YYYY-MM-DD Hour:Minute am/pm'}), validators=[validate_date2])
lesson_weekly = forms.BooleanField(required=False)
class Meta:
model = Lesson
fields = ('lesson_instrument', 'lesson_datetime_start', 'lesson_datetime_end', 'lesson_weekly')
def clean(self):
cleaned_data = super().clean()
lesson_datetime_start = self.cleaned_data.get("lesson_datetime_start")
lesson_datetime_end = self.cleaned_data.get("lesson_datetime_end")
if lesson_datetime_start.date() != lesson_datetime_end.date() and lesson_datetime_start >= lesson_datetime_end:
raise ValidationError('Dates have to be the same and end time must be later than start time')
return cleaned_data
【问题讨论】:
标签: python django forms validation