Я делал такие вещи в чистом методе:
if self.cleaned_data['type'].organized_by != self.cleaned_data['organized_by']:
raise forms.ValidationError('The type and organization do not match.')
if self.cleaned_data['start'] > self.cleaned_data['end']:
raise forms.ValidationError('The start date cannot be later than the end date.')
Но тогда это означает, что форма может вызвать только одну из этих ошибок одновременно. Есть ли способ для формы вызвать обе эти ошибки?
РЕДАКТИРОВАТЬ # 1 :
Любые решения для вышеупомянутых хороши, но хотели бы что-то, что также работало бы в сценарии как:
if self.cleaned_data['type'].organized_by != self.cleaned_data['organized_by']:
raise forms.ValidationError('The type and organization do not match.')
if self.cleaned_data['start'] > self.cleaned_data['end']:
raise forms.ValidationError('The start date cannot be later than the end date.')
super(FooAddForm, self).clean()
Где FooAddForm является ModelForm и имеет уникальные ограничения, которые также могут вызывать ошибки. Если кто-нибудь знает что-то подобное, это было бы здорово ...