diff options
| author | Tom Christie | 2012-10-10 16:34:00 +0100 |
|---|---|---|
| committer | Tom Christie | 2012-10-10 16:34:00 +0100 |
| commit | d905d1cbd3a20191835be1a5bddee0aabf136ec6 (patch) | |
| tree | 14eb3254d0785f12c24c567646dae92ec96d2e3a /rest_framework/renderers.py | |
| parent | 5c7f3e23ee54d340652b9e78c4f4731d93124270 (diff) | |
| download | django-rest-framework-d905d1cbd3a20191835be1a5bddee0aabf136ec6.tar.bz2 | |
Fix yaml rendering
Diffstat (limited to 'rest_framework/renderers.py')
| -rw-r--r-- | rest_framework/renderers.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 91cf16bb..e5e4134b 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -18,7 +18,7 @@ from rest_framework.utils import encoders from rest_framework.utils.breadcrumbs import get_breadcrumbs from rest_framework.utils.mediatypes import get_media_type_params from rest_framework import VERSION -from rest_framework import serializers +from rest_framework import serializers, parsers class BaseRenderer(object): @@ -125,6 +125,7 @@ class YAMLRenderer(BaseRenderer): media_type = 'application/yaml' format = 'yaml' + encoder = encoders.SafeDumper def render(self, data, accepted_media_type=None, renderer_context=None): """ @@ -133,7 +134,7 @@ class YAMLRenderer(BaseRenderer): if data is None: return '' - return yaml.safe_dump(data) + return yaml.dump(data, stream=None, Dumper=self.encoder) class HTMLRenderer(BaseRenderer): @@ -240,7 +241,8 @@ class BrowsableAPIRenderer(BaseRenderer): if method == 'DELETE' or method == 'OPTIONS': return True # Don't actually need to return a form - if not getattr(view, 'get_serializer', None): + if (not getattr(view, 'get_serializer', None) or + not parsers.FormParser in getattr(view, 'parser_classes')): media_types = [parser.media_type for parser in view.parser_classes] return self.get_generic_content_form(media_types) |
