Inject errors into already validated form?

For Django 1.7+, you should use form.add_error() instead of accessing form._errors directly.

Documentation: https://docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.add_error


Form._errors can be treated like a standard dictionary. It's considered good form to use the ErrorList class, and to append errors to the existing list:

from django.forms.utils import ErrorList
errors = form._errors.setdefault("myfield", ErrorList())
errors.append(u"My error here")

And if you want to add non-field errors, use django.forms.forms.NON_FIELD_ERRORS (defaults to "__all__") instead of "myfield".


You can add additional error details to the form's _errors attribute directly:

https://docs.djangoproject.com/en/1.5/ref/forms/validation/#described-later https://docs.djangoproject.com/en/1.6/ref/forms/validation/#modifying-field-errors


Add error to specific field :

form.add_error('fieldName', 'error description')

**Add error to non fields **

form.add_error(None, 'error description')
#Only pass None instead of field name