mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #4136 -- Made ModelForm save empty values for nullable CharFields as NULL.
Previously, empty values were saved as strings.
This commit is contained in:
parent
f2c0eb19e9
commit
267dc4addd
9 changed files with 66 additions and 18 deletions
|
@ -361,7 +361,7 @@ For each field, we describe the default widget used if you don't specify
|
|||
.. class:: CharField(**kwargs)
|
||||
|
||||
* Default widget: :class:`TextInput`
|
||||
* Empty value: ``''`` (an empty string)
|
||||
* Empty value: Whatever you've given as :attr:`empty_value`.
|
||||
* Normalizes to: A Unicode object.
|
||||
* Validates ``max_length`` or ``min_length``, if they are provided.
|
||||
Otherwise, all inputs are valid.
|
||||
|
@ -380,6 +380,12 @@ For each field, we describe the default widget used if you don't specify
|
|||
If ``True`` (default), the value will be stripped of leading and
|
||||
trailing whitespace.
|
||||
|
||||
.. attribute:: empty_value
|
||||
|
||||
.. versionadded:: 1.11
|
||||
|
||||
The value to use to represent "empty". Defaults to an empty string.
|
||||
|
||||
``ChoiceField``
|
||||
---------------
|
||||
|
||||
|
|
|
@ -43,11 +43,13 @@ If ``True``, Django will store empty values as ``NULL`` in the database. Default
|
|||
is ``False``.
|
||||
|
||||
Avoid using :attr:`~Field.null` on string-based fields such as
|
||||
:class:`CharField` and :class:`TextField` because empty string values will
|
||||
always be stored as empty strings, not as ``NULL``. If a string-based field has
|
||||
:class:`CharField` and :class:`TextField`. 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;" the Django convention is to use the empty string, not ``NULL``.
|
||||
for "no data;" the Django convention is to use the empty string, not
|
||||
``NULL``. One exception is when a :class:`CharField` has both ``unique=True``
|
||||
and ``blank=True`` set. In this situation, ``null=True`` is required to avoid
|
||||
unique constraint violations when saving multiple objects with blank values.
|
||||
|
||||
For both string-based and non-string-based fields, you will also need to
|
||||
set ``blank=True`` if you wish to permit empty values in forms, as the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue