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.
     JSON-serializable object.
 
 
     The ``encoder``, which defaults to
     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
     serialize the data. See :ref:`JSON serialization
     <serialization-formats-json>` for more details about this serializer.
     <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
 ManyToMany-relations are serialized for the model that defines them and are
 represented as a list of PKs.
 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`.
 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
 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
 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
 Also note that GeoDjango provides a :doc:`customized GeoJSON serializer
 </ref/contrib/gis/serializers>`.
 </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
 .. _ecma-262: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
 
 
 YAML
 YAML