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.code
s 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.