From 94c9e82f4f4a8bf4de08aee362a368e55880f48c Mon Sep 17 00:00:00 2001 From: Ben Lapid Date: Sun, 14 Apr 2013 00:40:22 +0300 Subject: [PATCH] added ensure_ascii flag to JSONRenderer. UnicodeJSONRenderer now simply turns this to false --- rest_framework/renderers.py | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 401a49086..cf8a0cb1b 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -48,6 +48,7 @@ class JSONRenderer(BaseRenderer): media_type = 'application/json' format = 'json' encoder_class = encoders.JSONEncoder + ensure_ascii = True def render(self, data, accepted_media_type=None, renderer_context=None): """ @@ -71,7 +72,7 @@ class JSONRenderer(BaseRenderer): except (ValueError, TypeError): indent = None - return json.dumps(data, cls=self.encoder_class, indent=indent) + return json.dumps(data, cls=self.encoder_class, indent=indent, ensure_ascii=self.ensure_ascii) class JSONPRenderer(JSONRenderer): @@ -546,34 +547,4 @@ class BrowsableAPIUnicodeRenderer(BrowsableAPIRenderer): class UnicodeJSONRenderer(BaseRenderer): - """ - Renderer which serializes to json. - """ - - media_type = 'application/json' - format = 'json' - encoder_class = encoders.JSONEncoder - - def render(self, data, accepted_media_type=None, renderer_context=None): - """ - Render `obj` into json. - """ - if data is None: - return '' - - # If 'indent' is provided in the context, then pretty print the result. - # E.g. If we're being called by the BrowseableAPIRenderer. - renderer_context = renderer_context or {} - indent = renderer_context.get('indent', None) - - if accepted_media_type: - # If the media type looks like 'application/json; indent=4', - # then pretty print the result. - base_media_type, params = parse_header(accepted_media_type.encode('ascii')) - indent = params.get('indent', indent) - try: - indent = max(min(int(indent), 8), 0) - except (ValueError, TypeError): - indent = None - - return json.dumps(data, cls=self.encoder_class, indent=indent, ensure_ascii=False) + ensure_ascii = False