Loading docs/ref/models/fields.txt +18 −15 Original line number Diff line number Diff line Loading @@ -45,11 +45,11 @@ booleans and dates. For both types of fields, you will also need to set :attr:`~Field.blank`). Avoid using :attr:`~Field.null` on string-based fields such as :class:`CharField` and :class:`TextField` unless you have an excellent reason. If a string-based field has ``null=True``, that means it has two possible values for "no data": ``NULL``, and the empty string. In most cases, it's redundant to have two possible values for "no data;" Django convention is to use the empty string, not ``NULL``. :class:`~django.db.models.CharField` and :class:`~django.db.models.TextField` unless you have an excellent reason. If a string-based field has ``null=True``, that means it has two possible values for "no data": ``NULL``, and the empty string. In most cases, it's redundant to have two possible values for "no data;" Django convention is to use the empty string, not ``NULL``. .. note:: Loading Loading @@ -142,8 +142,9 @@ documentation. 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 :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. proper database table with a :class:`~django.db.models.ForeignKey`. :attr:`~Field.choices` is meant for static data that doesn't change much, if ever. ``db_column`` ------------- Loading Loading @@ -219,10 +220,10 @@ Alternatively you can use plain text and If ``True``, this field is the primary key for the model. If you don't specify ``primary_key=True`` for any fields in your model, Django will automatically add an :class:`IntegerField` to hold the primary key, so you don't need to set ``primary_key=True`` on any of your fields unless you want to override the default primary-key behavior. For more, see :ref:`automatic-primary-key-fields`. will automatically add an :class:`~django.db.models.IntegerField` to hold the primary key, so you don't need to set ``primary_key=True`` on any of your fields unless you want to override the default primary-key behavior. For more, see :ref:`automatic-primary-key-fields`. ``primary_key=True`` implies :attr:`null=False <Field.null>` and :attr:`unique=True <Field.unique>`. Only one primary key is allowed on an object. Loading @@ -239,16 +240,18 @@ you try to save a model with a duplicate value in a :attr:`~Field.unique` field, a :exc:`django.db.IntegrityError` will be raised by the model's :meth:`~django.db.models.Model.save` method. This option is valid on all field types except :class:`ManyToManyField` and :class:`FileField`. This option is valid on all field types except :class:`~django.db.models.ManyToManyField` and :class:`~django.db.models.FileField`. ``unique_for_date`` ------------------- .. attribute:: Field.unique_for_date Set this to the name of a :class:`DateField` or :class:`DateTimeField` to require that this field be unique for the value of the date field. Set this to the name of a :class:`~django.db.models.DateField` or :class:`~django.db.models.DateTimeField` to require that this field be unique for the value of the date field. For example, if you have a field ``title`` that has ``unique_for_date="pub_date"``, then Django wouldn't allow the entry of two Loading Loading
docs/ref/models/fields.txt +18 −15 Original line number Diff line number Diff line Loading @@ -45,11 +45,11 @@ booleans and dates. For both types of fields, you will also need to set :attr:`~Field.blank`). Avoid using :attr:`~Field.null` on string-based fields such as :class:`CharField` and :class:`TextField` unless you have an excellent reason. If a string-based field has ``null=True``, that means it has two possible values for "no data": ``NULL``, and the empty string. In most cases, it's redundant to have two possible values for "no data;" Django convention is to use the empty string, not ``NULL``. :class:`~django.db.models.CharField` and :class:`~django.db.models.TextField` unless you have an excellent reason. If a string-based field has ``null=True``, that means it has two possible values for "no data": ``NULL``, and the empty string. In most cases, it's redundant to have two possible values for "no data;" Django convention is to use the empty string, not ``NULL``. .. note:: Loading Loading @@ -142,8 +142,9 @@ documentation. 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 :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. proper database table with a :class:`~django.db.models.ForeignKey`. :attr:`~Field.choices` is meant for static data that doesn't change much, if ever. ``db_column`` ------------- Loading Loading @@ -219,10 +220,10 @@ Alternatively you can use plain text and If ``True``, this field is the primary key for the model. If you don't specify ``primary_key=True`` for any fields in your model, Django will automatically add an :class:`IntegerField` to hold the primary key, so you don't need to set ``primary_key=True`` on any of your fields unless you want to override the default primary-key behavior. For more, see :ref:`automatic-primary-key-fields`. will automatically add an :class:`~django.db.models.IntegerField` to hold the primary key, so you don't need to set ``primary_key=True`` on any of your fields unless you want to override the default primary-key behavior. For more, see :ref:`automatic-primary-key-fields`. ``primary_key=True`` implies :attr:`null=False <Field.null>` and :attr:`unique=True <Field.unique>`. Only one primary key is allowed on an object. Loading @@ -239,16 +240,18 @@ you try to save a model with a duplicate value in a :attr:`~Field.unique` field, a :exc:`django.db.IntegrityError` will be raised by the model's :meth:`~django.db.models.Model.save` method. This option is valid on all field types except :class:`ManyToManyField` and :class:`FileField`. This option is valid on all field types except :class:`~django.db.models.ManyToManyField` and :class:`~django.db.models.FileField`. ``unique_for_date`` ------------------- .. attribute:: Field.unique_for_date Set this to the name of a :class:`DateField` or :class:`DateTimeField` to require that this field be unique for the value of the date field. Set this to the name of a :class:`~django.db.models.DateField` or :class:`~django.db.models.DateTimeField` to require that this field be unique for the value of the date field. For example, if you have a field ``title`` that has ``unique_for_date="pub_date"``, then Django wouldn't allow the entry of two Loading