Commit f93e7f56 authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #24690 -- Added a warning about mutable defaults for ArrayField/JSONField.

parent fd81588b
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -17,6 +17,12 @@ ArrayField
    <ArrayField.size>`. ``ArrayField`` can be nested to store multi-dimensional
    arrays.

    If you give the field a :attr:`~django.db.models.Field.default`, ensure
    it's a callable such as ``list`` (for an empty default) or a callable that
    returns a list (such as a function). Incorrectly using ``default=[]``
    creates a mutable default that is shared between all instances of
    ``ArrayField``.

    .. attribute:: base_field

        This is a required argument.
@@ -461,6 +467,12 @@ JSONField
    its Python native format: dictionaries, lists, strings, numbers, booleans
    and ``None``.

    If you give the field a :attr:`~django.db.models.Field.default`, ensure
    it's a callable such as ``dict`` (for an empty default) or a callable that
    returns a dict (such as a function). Incorrectly using ``default={}``
    creates a mutable default that is shared between all instances of
    ``JSONField``.

.. note::

    PostgreSQL has two native JSON based data types: ``json`` and ``jsonb``.