﻿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
26609	Add system check for field choices using unorderable iterables	Harry Percival	Mariusz Felisiak	"Not sure if this is *quite* a bug, but thought I'd mention it since it was a puzzler.

I had an app that seemed to be generatic infinite migrations, ie ""makemigrations"" would always create new migrations even if I didn't do anything about it.

Eventually I figured out it was (I think) due to Python's non-deterministic dict ordering behaviour (this may be Python 3 only, IIRC said nondetermininstic ordering is to avoid some sort of security thing).

code, eg:
{{{
THINGS = {
    'key1': 'val1',
    'key2': 'val2',
    #etc
}

# ...

    myfield = models.CharField(choices=[(k,v) for k,v in THINGS], max_length=255)
}}}

I fixed it by using ""sorted"" on my list comprehension, but I imagine other people might be v confused, and it feels like something ppl are quite likely to do (use a dict for the basis of choices in a field?)"	Cleanup/optimization	closed	Database layer (models, ORM)	dev	Normal	fixed	migrations	Karl Claude Paroz	Accepted	1	0	0	0	0	0
