The order of the choices in the HTML `select` field corresponds to the order of the choices. For instance, our `Range.allow` field is defined like this:

```python
    allow = models.CharField(max_length=20, choices=ALLOW_OPTIONS.items(),
                             default=ALLOW_LEGACY)
```

This means that Django will put them in the order returned by `ALLOW_OPTIONS.items()`. I'll quote the Python dictionary docs:

> items()
> Return a copy of the dictionary’s list of (key, value) pairs.
> CPython implementation detail: Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary’s history of insertions and deletions.
> — http://docs.python.org/2/library/stdtypes.html#dict.items

This means that if the order is important, we have to switch from a dictionary to an iterable containing tuples `(representation, description)`.