#24271: Error message for fields.E005 does not specify that both 'actual value',
'human readable name' must be strings/'Actual Value should be able to be a
non-string
----------------------------------+--------------------
     Reporter:  AncientSwordRage  |      Owner:  nobody
         Type:  Bug               |     Status:  new
    Component:  Core (Other)      |    Version:  1.7
     Severity:  Normal            |   Keywords:
 Triage Stage:  Unreviewed        |  Has patch:  0
Easy pickings:  1                 |      UI/UX:  0
----------------------------------+--------------------
 There is some
 
[https://github.com/django/django/blob/master/django/db/models/fields/__init__.py#L254
 code] that checks your choice of choices is valid. At one point it checks
 this:

 {{{ isinstance(choice, six.string_types)}}}

 Which checks that BOTH parts of the 2-tuple are strings (e.g. human
 readable). But the error message just says:

     "'choices' must be an iterable containing (actual value, human
 readable name) tuples."

 Which does not specify type in anyway, (e.g it doesn't say they must be
 some kind of string).

 Either the error should say that both parts must be strings (and thus
 block some fields from using  them e.g. integer fields), or only the
 second element should be checked, thusly:

 {{{
 >>> choices = (
 ...         (1, 'Primary'), (2, 'Secondary'), (3, 'Tertiary')
 ...         )
 >>> any(isinstance(choice, six.string_types) for choice in choices)
 False
 >>> any(isinstance(choice[1], six.string_types) for choice in choices)
 True
 >>>
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24271>
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/059.aec4b7c10164e7723d6565fce74159ca%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to