Django Number Choices
I know the title may be misleading, but there are some situations where you want the choices of a Model of ChoiceField to be a specific range of numbers.
Since Django expects an iterable consisting itself of iterables of exactly two items (e.g. [[1, 1] , [2, 2]]), we can't simply supply a range.
First things first, here's the solution (well, one of the many):
choices=zip(*[range(start, end + 1)] * 2)
Let me explain: first, there's the range that we want to convert from [1, 2, ... n] to [[1, 1], [2, 2], ... [n, n]]. We then 'duplicate' the list (well, create a reference) by multiplying it with 2, effectively becoming [[1, 2, ... n], [1, 2, ... n]].
Since the zip function doesn't take a list but each list as a single argument, we unpack our list with the * and we're done.
Written by Lukas Klein
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Python
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#