Browse Source

Fixed #26704 -- Documented DjangoJSONEncoder.

Tommy Beadle 8 years ago
parent
commit
729b9452b1
2 changed files with 26 additions and 4 deletions
  1. 1 1
      docs/ref/request-response.txt
  2. 25 3
      docs/topics/serialization.txt

+ 1 - 1
docs/ref/request-response.txt

@@ -946,7 +946,7 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in
     JSON-serializable object.
 
     The ``encoder``, which defaults to
-    ``django.core.serializers.json.DjangoJSONEncoder``, will be used to
+    :class:`django.core.serializers.json.DjangoJSONEncoder`, will be used to
     serialize the data. See :ref:`JSON serialization
     <serialization-formats-json>` for more details about this serializer.
 

+ 25 - 3
docs/topics/serialization.txt

@@ -251,9 +251,6 @@ Foreign keys just have the PK of the linked object as property value.
 ManyToMany-relations are serialized for the model that defines them and are
 represented as a list of PKs.
 
-Date and datetime related types are treated in a special way by the JSON
-serializer to make the format compatible with `ECMA-262`_.
-
 Be aware that not all Django output can be passed unmodified to :mod:`json`.
 For example, if you have some custom type in an object to be serialized, you'll
 have to write a custom :mod:`json` encoder for it. Something like this will
@@ -271,6 +268,31 @@ work::
 Also note that GeoDjango provides a :doc:`customized GeoJSON serializer
 </ref/contrib/gis/serializers>`.
 
+``DjangoJSONEncoder``
+~~~~~~~~~~~~~~~~~~~~~
+
+.. class:: django.core.serializers.json.DjangoJSONEncoder
+
+The JSON serializer uses ``DjangoJSONEncoder`` for encoding. A subclass of
+:class:`~json.JSONEncoder`, it handles these additional types:
+
+:class:`~datetime.datetime`
+   A string of the form ``YYYY-MM-DDTHH:mm:ss.sssZ`` or
+   ``YYYY-MM-DDTHH:mm:ss.sss+HH:MM`` as defined in `ECMA-262`_.
+
+:class:`~datetime.date`
+   A string of the form ``YYYY-MM-DD`` as defined in `ECMA-262`_.
+
+:class:`~datetime.time`
+   A string of the form ``HH:MM:ss.sss`` as defined in `ECMA-262`_.
+
+:class:`~decimal.Decimal`, ``Promise`` (``django.utils.functional.lazy()`` objects), :class:`~uuid.UUID`
+   A string representation of the object.
+
+.. versionchanged:: 1.10
+
+    Support for ``Promise`` was added.
+
 .. _ecma-262: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
 
 YAML