Дата окончания проверки больше даты начала в форме модели Django
У меня есть поля start_date и end_date в моей модели, я хочу назначить ошибку end_date, когда она больше, чем start_date, я искал документы, но не нашел примера об этом.
2 ответов
вам нужна пользовательская функция очистки в вашей форме, которая выполняет проверку:
def clean(self):
start_date = cleaned_data.get("start_date")
end_date = cleaned_data.get("end_date")
if end_date < start_date:
msg = u"End date should be greater than start date."
self._errors["end_date"] = self.error_class([msg])
это фактический рекомендуемый пример из docs
короче говоря, не забудьте вернуть cleaned_data и правильно поднять ошибки формы.
from django import forms
class ContactForm(forms.Form):
# Everything as before.
...
def clean_recipients(self):
data = self.cleaned_data['recipients']
if "fred@example.com" not in data:
raise forms.ValidationError("You have forgotten about Fred!")
# Always return the cleaned data, whether you have changed it or
# not.
return data