Tôi đã làm những việc như thế này trong các phương pháp làm sạch:Django: Trọng() phương pháp sạch trong các hình thức - câu hỏi về nâng lỗi
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.')
Nhưng sau đó có nghĩa rằng hình thức chỉ có thể huy động một trong những lỗi này tại một thời điểm. Có cách nào để biểu mẫu tăng cả hai lỗi này?
EDIT # 1: Bất kỳ giải pháp cho ở trên là rất lớn, nhưng rất thích cái gì đó cũng sẽ làm việc trong một kịch bản như:
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()
đâu FooAddForm là một ModelForm và có ràng buộc duy nhất mà có thể cũng gây ra lỗi. Nếu có ai biết của một cái gì đó như thế, đó sẽ là tuyệt vời ...
Điều này hoạt động rất độc đáo (Tôi không chắc chắn nếu tôi thích các thông báo lỗi được đính kèm vào các trường chứ không phải toàn bộ biểu mẫu, nhưng nó thực sự là loại có ý nghĩa hơn theo cách này) và các ràng buộc duy nhất của ModelForm cũng hoạt động. Vì vậy, tôi chấp nhận điều này - cảm ơn! :) –