{{{ 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.
* status: new => assigned
* needs_better_patch: => 0
* owner: nobody => mbasanta
* needs_tests: => 0
* needs_docs: => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/24271#comment:1>
* status: assigned => closed
* resolution: => fixed
Comment:
Turns out to be a bug in the user's code, not in Django:
http://stackoverflow.com/questions/28304776/are-numerically-keyed-choices-
no-longer-possible-in-django-1-7
--
Ticket URL: <https://code.djangoproject.com/ticket/24271#comment:2>
* resolution: fixed => invalid
Comment:
Whoops, I mean 'invalid', not 'fixed'. (I can't edit that, can I?)
--
Ticket URL: <https://code.djangoproject.com/ticket/24271#comment:3>