From c432dd40bde37667bfe6bb59eaff0a14c50cd27b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 4 Jan 2016 11:07:05 -0500 Subject: [PATCH] Refs #25995 -- Documented that JSONField doesn't handle sophisticated serialization. --- docs/ref/contrib/postgres/fields.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/ref/contrib/postgres/fields.txt b/docs/ref/contrib/postgres/fields.txt index f5c98929b7..cb6f15acc5 100644 --- a/docs/ref/contrib/postgres/fields.txt +++ b/docs/ref/contrib/postgres/fields.txt @@ -467,6 +467,12 @@ JSONField its Python native format: dictionaries, lists, strings, numbers, booleans and ``None``. + If you want to store other data types, you'll need to serialize them first. + For example, you might cast a ``datetime`` to a string. You might also want + to convert the string back to a ``datetime`` when you retrieve the data + from the database. There are some third-party ``JSONField`` implementations + which do this sort of thing automatically. + 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={}``