Fixed #30505 -- Doc'd how changes in the order of Field.choices affect migrations.
This commit is contained in:
parent
f9561144d7
commit
5248abe9b0
1
AUTHORS
1
AUTHORS
|
@ -150,6 +150,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
bthomas
|
bthomas
|
||||||
btoll@bestweb.net
|
btoll@bestweb.net
|
||||||
C8E
|
C8E
|
||||||
|
Caio Ariede <caio.ariede@gmail.com>
|
||||||
Calvin Spealman <ironfroggy@gmail.com>
|
Calvin Spealman <ironfroggy@gmail.com>
|
||||||
Cameron Curry
|
Cameron Curry
|
||||||
Cameron Knight (ckknight)
|
Cameron Knight (ckknight)
|
||||||
|
|
|
@ -80,7 +80,7 @@ If a field has ``blank=False``, the field will be required.
|
||||||
|
|
||||||
.. attribute:: Field.choices
|
.. 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
|
``[(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
|
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
|
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
|
:meth:`~django.db.models.Model.get_FOO_display` in the database API
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
Note that choices can be any iterable object -- not necessarily a list or tuple.
|
Note that choices can be any sequence object -- not necessarily a list or
|
||||||
This lets you construct choices dynamically. But if you find yourself hacking
|
tuple. This lets you construct choices dynamically. But if you find yourself
|
||||||
:attr:`~Field.choices` to be dynamic, you're probably better off using a proper
|
hacking :attr:`~Field.choices` to be dynamic, you're probably better off using
|
||||||
database table with a :class:`ForeignKey`. :attr:`~Field.choices` is meant for
|
a proper database table with a :class:`ForeignKey`. :attr:`~Field.choices` is
|
||||||
static data that doesn't change much, if ever.
|
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
|
Unless :attr:`blank=False<Field.blank>` is set on the field along with a
|
||||||
:attr:`~Field.default` then a label containing ``"---------"`` will be rendered
|
:attr:`~Field.default` then a label containing ``"---------"`` will be rendered
|
||||||
|
|
|
@ -154,7 +154,7 @@ ones:
|
||||||
<Field.blank>`, the field will be required.
|
<Field.blank>`, the field will be required.
|
||||||
|
|
||||||
:attr:`~Field.choices`
|
:attr:`~Field.choices`
|
||||||
An :term:`iterable` of 2-tuples to use as choices for this field. If this
|
A :term:`sequence` of 2-tuples to use as choices for this field. If this
|
||||||
is given, the default form widget will be a select box instead of the
|
is given, the default form widget will be a select box instead of the
|
||||||
standard text field and will limit choices to the choices given.
|
standard text field and will limit choices to the choices given.
|
||||||
|
|
||||||
|
@ -168,6 +168,9 @@ ones:
|
||||||
('GR', 'Graduate'),
|
('GR', 'Graduate'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
A new migration is created each time the order of ``choices`` changes.
|
||||||
|
|
||||||
The first element in each tuple is the value that will be stored in the
|
The first element in each tuple is the value that will be stored in the
|
||||||
database. The second element is displayed by the field's form widget.
|
database. The second element is displayed by the field's form widget.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue