que he estado haciendo este tipo de cosas en el método de limpieza:Django: Sustitución del método clean() en formas - pregunta sobre la crianza de los errores
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.')
Pero entonces eso significa que la forma sólo se puede plantear una de estos errores a la vez. ¿Hay alguna manera de que la forma genere ambos errores?
editar # 1: Cualquier solución para lo anterior son grandes, pero le encantaría algo que también funcionaría en un escenario como:
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()
Dónde FooAddForm es un ModelForm y tiene restricciones únicas que podrían también causa errores. Si alguien sabe de algo así, eso sería genial ...
Esto funciona muy bien (no estaba seguro si me gustaba que los mensajes de error se adjuntasen a los campos en lugar de a la forma completa, pero en realidad es una especie de tiene más sentido de esta manera) y las restricciones únicas de ModelForm también funcionan. Así que estoy aceptando este, ¡gracias! :) –