﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
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	AncientSwordRage	Matthew Basanta	"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
>>>
}}}"	Bug	closed	Core (Other)	1.7	Normal	invalid			Unreviewed	0	0	0	0	1	0
