diff options
Diffstat (limited to 'docs/ref')
| -rw-r--r-- | docs/ref/models/fields.txt | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index a3c14f8b1b..7ca6b2c619 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -80,7 +80,7 @@ If a field has ``blank=False``, the field will be required. .. attribute:: Field.choices -An :term:`iterable` consisting itself of iterables of exactly two items (e.g. +A :term:`sequence` consisting itself of iterables of exactly two items (e.g. ``[(A, B), (A, B) ...]``) to use as choices for this field. If choices are given, they're enforced by :ref:`model validation <validating-objects>` and the default form widget will be a select box with these choices instead of the @@ -155,11 +155,14 @@ method to retrieve the human-readable name for the field's current value. See :meth:`~django.db.models.Model.get_FOO_display` in the database API documentation. -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 -:attr:`~Field.choices` to be dynamic, you're probably better off using a proper -database table with a :class:`ForeignKey`. :attr:`~Field.choices` is meant for -static data that doesn't change much, if ever. +Note that choices can be any sequence object -- not necessarily a list or +tuple. This lets you construct choices dynamically. But if you find yourself +hacking :attr:`~Field.choices` to be dynamic, you're probably better off using +a proper database table with a :class:`ForeignKey`. :attr:`~Field.choices` is +meant for static data that doesn't change much, if ever. + +.. note:: + A new migration is created each time the order of ``choices`` changes. Unless :attr:`blank=False<Field.blank>` is set on the field along with a :attr:`~Field.default` then a label containing ``"---------"`` will be rendered |
