[1.4.X] Fixed #18478 - Documented how to use a mutable default in a model field.

Backport of 6e2bb344e4 from master
This commit is contained in:
Tim Graham 2012-09-08 14:52:17 -04:00
parent b0e2cb8e47
commit cd5181f84c
1 changed files with 8 additions and 0 deletions

View File

@ -197,6 +197,14 @@ support tablespaces for indexes, this option is ignored.
The default value for the field. This can be a value or a callable object. If
callable it will be called every time a new object is created.
The default cannot be a mutable object (model instance, list, set, etc.), as a
reference to the same instance of that object would be used as the default
value in all new model instances. Instead, wrap the desired default in a
callable. For example, if you had a custom ``JSONField`` and wanted to specify
a dictionary as the default, use a ``lambda`` as follows::
contact_info = JSONField("ContactInfo", default=lambda:{"email": "to1@example.com"})
``editable``
------------