Fixed #26704 -- Documented DjangoJSONEncoder.

This commit is contained in:
Tommy Beadle 2016-06-03 14:33:19 -04:00 committed by Tim Graham
parent be729b6120
commit 729b9452b1
2 changed files with 26 additions and 4 deletions

View File

@ -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.

View File

@ -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