aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py8
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)