diff options
Diffstat (limited to 'django/core/serializers/json.py')
| -rw-r--r-- | django/core/serializers/json.py | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/django/core/serializers/json.py b/django/core/serializers/json.py index 886e8f894c..59d7318409 100644 --- a/django/core/serializers/json.py +++ b/django/core/serializers/json.py @@ -8,9 +8,8 @@ import json import uuid from django.core.serializers.base import DeserializationError -from django.core.serializers.python import ( - Deserializer as PythonDeserializer, Serializer as PythonSerializer, -) +from django.core.serializers.python import Deserializer as PythonDeserializer +from django.core.serializers.python import Serializer as PythonSerializer from django.utils.duration import duration_iso_string from django.utils.functional import Promise from django.utils.timezone import is_aware @@ -18,18 +17,19 @@ from django.utils.timezone import is_aware class Serializer(PythonSerializer): """Convert a queryset to JSON.""" + internal_use_only = False def _init_options(self): self._current = None self.json_kwargs = self.options.copy() - self.json_kwargs.pop('stream', None) - self.json_kwargs.pop('fields', None) - if self.options.get('indent'): + self.json_kwargs.pop("stream", None) + self.json_kwargs.pop("fields", None) + if self.options.get("indent"): # Prevent trailing spaces - self.json_kwargs['separators'] = (',', ': ') - self.json_kwargs.setdefault('cls', DjangoJSONEncoder) - self.json_kwargs.setdefault('ensure_ascii', False) + self.json_kwargs["separators"] = (",", ": ") + self.json_kwargs.setdefault("cls", DjangoJSONEncoder) + self.json_kwargs.setdefault("ensure_ascii", False) def start_serialization(self): self._init_options() @@ -79,14 +79,15 @@ class DjangoJSONEncoder(json.JSONEncoder): JSONEncoder subclass that knows how to encode date/time, decimal types, and UUIDs. """ + def default(self, o): # See "Date Time String Format" in the ECMA-262 specification. if isinstance(o, datetime.datetime): r = o.isoformat() if o.microsecond: r = r[:23] + r[26:] - if r.endswith('+00:00'): - r = r[:-6] + 'Z' + if r.endswith("+00:00"): + r = r[:-6] + "Z" return r elif isinstance(o, datetime.date): return o.isoformat() |
