#35243: Add easy access to error codes in forms
--------------------------------------------+------------------------
               Reporter:  Christophe Henry  |          Owner:  nobody
                   Type:  Uncategorized     |         Status:  new
              Component:  Uncategorized     |        Version:  5.0
               Severity:  Normal            |       Keywords:
           Triage Stage:  Unreviewed        |      Has patch:  0
    Needs documentation:  0                 |    Needs tests:  0
Patch needs improvement:  0                 |  Easy pickings:  0
                  UI/UX:  0                 |
--------------------------------------------+------------------------
 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:

 {{{#!python
 error_codes = [err.code for err in form.errors.get("field",
 ErrorList()).data]
 }}}

 I propose to add a ``error_codes`` to the ``Form`` class as follows:

 {{{#!python
 @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
 }}}
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35243>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/0107018dcbd639f4-3255af20-cf82-4a8e-ac5e-17914ec11fcf-000000%40eu-central-1.amazonses.com.

Reply via email to