aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorMiro Hrončok2014-04-10 01:35:45 +0200
committerMiro Hrončok2014-04-10 01:47:30 +0200
commit7ae8409370635ccec7d3c160ea87281f21c9ae11 (patch)
tree67dd7bb246818b30687ea5437029846871e3f0a8 /rest_framework/renderers.py
parentb0ba8d61ecf3c74470fa6ac019caff1fd4ca1be6 (diff)
downloaddjango-rest-framework-7ae8409370635ccec7d3c160ea87281f21c9ae11.tar.bz2
Allow unicode YAML dump with UnicodeYAMLRenderer
Fixes #1519
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 7a7da561..484961ad 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -193,6 +193,7 @@ class YAMLRenderer(BaseRenderer):
format = 'yaml'
encoder = encoders.SafeDumper
charset = 'utf-8'
+ ensure_ascii = True
def render(self, data, accepted_media_type=None, renderer_context=None):
"""
@@ -203,7 +204,15 @@ class YAMLRenderer(BaseRenderer):
if data is None:
return ''
- return yaml.dump(data, stream=None, encoding=self.charset, Dumper=self.encoder)
+ return yaml.dump(data, stream=None, encoding=self.charset, Dumper=self.encoder, allow_unicode=not self.ensure_ascii)
+
+
+class UnicodeYAMLRenderer(YAMLRenderer):
+ """
+ Renderer which serializes to YAML.
+ Does *not* apply character escaping for non-ascii characters.
+ """
+ ensure_ascii = False
class TemplateHTMLRenderer(BaseRenderer):