From c69f960066dfdef2163a53205f27c2b9e457068f Mon Sep 17 00:00:00 2001 From: Pablo Recio Date: Sat, 18 May 2013 16:30:40 +0200 Subject: Adding a class attribute into JSONRenderer for ensuring ascii, and using it consistently --- rest_framework/renderers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'rest_framework/renderers.py') diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 8361cd40..d55a3e0e 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -49,6 +49,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): """ @@ -72,7 +73,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): -- cgit v1.2.3 From 97f034e3d65068f7bd1e982e6fd251222a4feea1 Mon Sep 17 00:00:00 2001 From: Pablo Recio Date: Sat, 18 May 2013 16:31:12 +0200 Subject: Adds UnicodeJSONRenderer which doesn't ensure ascii --- rest_framework/renderers.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'rest_framework/renderers.py') diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index d55a3e0e..12e1107f 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -76,6 +76,10 @@ class JSONRenderer(BaseRenderer): return json.dumps(data, cls=self.encoder_class, indent=indent, ensure_ascii=self.ensure_ascii) +class UnicodeJSONRenderer(JSONRenderer): + ensure_ascii = False + + class JSONPRenderer(JSONRenderer): """ Renderer which serializes to json, -- cgit v1.2.3 From 6dbbbc16da740fb27f9a5a390fb61400e9f6ff64 Mon Sep 17 00:00:00 2001 From: Pablo Recio Date: Sat, 18 May 2013 16:32:53 +0200 Subject: Better checking if the content can be printable in the BrowsableAPI --- rest_framework/renderers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rest_framework/renderers.py') diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 12e1107f..4345a313 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -325,7 +325,7 @@ class BrowsableAPIRenderer(BaseRenderer): renderer_context['indent'] = 4 content = renderer.render(data, accepted_media_type, renderer_context) - if not all(char in string.printable for char in content): + if not isinstance(content, six.text_type): return '[%d bytes of binary content]' return content -- cgit v1.2.3