Django: Przesłanianie metody clean () w formularzach - pytanie o podnoszenie błędów
Robiłem takie rzeczy w czystej metodzie:
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.')
Ale to oznacza, że formularz może podnosić tylko jeden z tych błędów naraz. Czy istnieje sposób, aby formularz podnosił oba te błędy?
EDYCJA # 1: Wszelkie rozwiązania dla powyższego są świetne, ale spodobałoby się coś, co również działałoby w scenariuszu takim jak:
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()
Gdzie FooAddForm jest formą modelu i ma unikalne ograniczenia, które mogą również powodować błędy. Gdyby ktoś wiedział o czymś takim, byłoby wspaniale ...