diff options
author | Sage Abdullah <me@laymonage.com> | 2023-04-19 23:54:18 +0700 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-04-19 21:53:04 +0200 |
commit | f80dbcf7dccc7227eade1a02d413fc65fc6f53ef (patch) | |
tree | 818907ec660f4340257db3ef9ee674e407d4924e | |
parent | df44c7b3cc66e0eadd44e794f31e66ccbb385bac (diff) | |
download | django-f80dbcf7dccc7227eade1a02d413fc65fc6f53ef.tar.gz |
[4.2.x] Fixed #34435 -- Doc'd that JSONField.default must be a callable.
Backport of 01ae9d4ca9afdaf30a247e10e8333261a7d8224c from main
-rw-r--r-- | docs/ref/models/fields.txt | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index c1267507b2..7374ea6b63 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1262,14 +1262,16 @@ Python native format: dictionaries, lists, strings, numbers, booleans and Defaults to ``json.JSONDecoder``. -If you give the field a :attr:`~django.db.models.Field.default`, ensure it's an -immutable object, such as a ``str``, or a callable object that returns a fresh -mutable object each time, such as ``dict`` or a function. Providing a mutable -default object like ``default={}`` or ``default=[]`` shares the one object -between all model instances. - To query ``JSONField`` in the database, see :ref:`querying-jsonfield`. +.. admonition:: Default value + + If you give the field a :attr:`~django.db.models.Field.default`, ensure + it's a callable such as the :py:class:`dict` class or a function that + returns a fresh object each time. Incorrectly using a mutable object like + ``default={}`` or ``default=[]`` creates a mutable default that is shared + between all instances. + .. admonition:: Indexing :class:`~django.db.models.Index` and :attr:`.Field.db_index` both create a |