mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-01-24 00:04:16 +03:00
Ensure json.dumps(separators=...) works on both 2.x and 3.x
This commit is contained in:
parent
0dea509dc9
commit
cd40dcb065
|
@ -291,6 +291,15 @@ except ImportError:
|
||||||
oauth2_constants = None
|
oauth2_constants = None
|
||||||
provider_now = None
|
provider_now = None
|
||||||
|
|
||||||
|
# `seperators` argument to `json.dumps()` differs between 2.x and 3.x
|
||||||
|
# See: http://bugs.python.org/issue22767
|
||||||
|
if six.PY3:
|
||||||
|
SHORT_SEPARATORS = (',', ':')
|
||||||
|
LONG_SEPARATORS = (', ', ': ')
|
||||||
|
else:
|
||||||
|
SHORT_SEPARATORS = (b',', b':')
|
||||||
|
LONG_SEPARATORS = (b', ', b': ')
|
||||||
|
|
||||||
|
|
||||||
# Handle lazy strings across Py2/Py3
|
# Handle lazy strings across Py2/Py3
|
||||||
from django.utils.functional import Promise
|
from django.utils.functional import Promise
|
||||||
|
|
|
@ -18,7 +18,9 @@ from django.test.client import encode_multipart
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.xmlutils import SimplerXMLGenerator
|
from django.utils.xmlutils import SimplerXMLGenerator
|
||||||
from rest_framework import exceptions, serializers, status, VERSION
|
from rest_framework import exceptions, serializers, status, VERSION
|
||||||
from rest_framework.compat import StringIO, smart_text, yaml
|
from rest_framework.compat import (
|
||||||
|
SHORT_SEPARATORS, LONG_SEPARATORS, StringIO, smart_text, yaml
|
||||||
|
)
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
from rest_framework.request import is_form_media_type, override_method
|
from rest_framework.request import is_form_media_type, override_method
|
||||||
|
@ -87,7 +89,7 @@ class JSONRenderer(BaseRenderer):
|
||||||
|
|
||||||
renderer_context = renderer_context or {}
|
renderer_context = renderer_context or {}
|
||||||
indent = self.get_indent(accepted_media_type, renderer_context)
|
indent = self.get_indent(accepted_media_type, renderer_context)
|
||||||
separators = (',', ':') if (indent is None and self.compact) else (', ', ': ')
|
separators = SHORT_SEPARATORS if (indent is None and self.compact) else LONG_SEPARATORS
|
||||||
|
|
||||||
ret = json.dumps(
|
ret = json.dumps(
|
||||||
data, cls=self.encoder_class,
|
data, cls=self.encoder_class,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user