Add easy access to error codes in forms
The ValidationError has a code field that can be used in views to determined what exactly failed during form validation. Unfortunately, the list of error codes in not easily accessible from form. Actually, if I want to recover the ValidationError.codes for a form's particular field, I must write the following:
error_codes = [err.code for err in form.errors.get("field", ErrorList()).data] I propose to add an error_codes property to the Form class as follows:
@property def errors_codes(self): """Return the list of error codes for each field of this form.""" if self._errors_codes is None: self._errors_codes = { field: [error.code for error in errors.data if error.code] for field, errors in self.errors.items() } return self._errors_codes
Change History (6)
| Component: | Uncategorized → Forms |
| Type: | Uncategorized → New feature |
| Description: | modified (diff) |
| Description: | modified (diff) |
| Description: | modified (diff) |
| Description: | modified (diff) |
| Resolution: | → wontfix |
| Status: | new → closed |
Hello! Thank you for your report and interest in making Django better.
As you shown in your example, this is trivial to add to your code base, and it seems a very specific need arising from a niche use case. I don't think this applies to the broader ecosystem, and Django is a framework designed to offer robust and accurate solutions for common scenarios.
Given the above, I'll close the ticket accordingly, but if you disagree, you can consider starting a new conversation on the Django Forum, where you'll reach a wider audience and likely get extra feedback. More information in the documented guidelines for requesting features.