Fixed #1697 and #2095 -- Made 'choices' parameter accept any iterable

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3094 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-06-07 02:46:08 +00:00
parent 448becefdf
commit f3f002b161
2 changed files with 10 additions and 3 deletions

View file

@ -445,7 +445,8 @@ empty value. If a field has ``blank=False``, the field will be required.
``choices``
~~~~~~~~~~~
A list of 2-tuples to use as choices for this field.
An iterable (e.g., a list or tuple) of 2-tuples to use as choices for this
field.
If this is given, Django's admin will use a select box instead of the
standard text field and will limit choices to the choices given.
@ -481,6 +482,12 @@ or outside your model class altogether::
class Foo(models.Model):
gender = models.CharField(maxlength=1, choices=GENDER_CHOICES)
Finally, note that choices can be any iterable object -- not necessarily a
list or tuple. This lets you construct choices dynamically. But if you find
yourself hacking ``choices`` to be dynamic, you're probably better off using
a proper database table with a ``ForeignKey``. ``choices`` is meant for static
data that doesn't change much, if ever.
``core``
~~~~~~~~