aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorTom Christie2013-05-18 08:55:59 -0700
committerTom Christie2013-05-18 08:55:59 -0700
commitc7fd2435330f094a7ab64f4358d11d6c2967eba1 (patch)
tree3b3fc8d9530037677166d7b793cb842c5ea40357 /rest_framework/renderers.py
parent3f47eb7a77fcc735782dd1bf8e8e053e26417ea1 (diff)
parentb9b22976125fffa4552da695183bf75fbaf0b927 (diff)
downloaddjango-rest-framework-c7fd2435330f094a7ab64f4358d11d6c2967eba1.tar.bz2
Merge pull request #863 from pyriku/787-unicodejsonrenderer
Adds UnicodeJSONRenderer
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 8361cd40..4345a313 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,11 @@ 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 UnicodeJSONRenderer(JSONRenderer):
+ ensure_ascii = False
class JSONPRenderer(JSONRenderer):
@@ -320,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