aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorTom Christie2014-12-18 11:21:25 +0000
committerTom Christie2014-12-18 11:21:25 +0000
commitc8d88c8c8a594e3b66547a34462db4766292ea9e (patch)
tree09d1e53c9c019501b85ff8892dca4177c95a6e0b /rest_framework/renderers.py
parent47fe6977077ae33dfe2f8b6d04d81083b9b9f4d7 (diff)
parentd8803a35bd2dc8cbf4c892f68b48c72f24e83916 (diff)
downloaddjango-rest-framework-c8d88c8c8a594e3b66547a34462db4766292ea9e.tar.bz2
Merge branch 'master' into version-3.1
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index f8d18fc6..c4de30db 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -435,12 +435,12 @@ class BrowsableAPIRenderer(BaseRenderer):
# serializer instance, rather than dynamically creating a new one.
if request.method == method and serializer is not None:
try:
- data = request.data
+ kwargs = {'data': request.data}
except ParseError:
- data = None
+ kwargs = {}
existing_serializer = serializer
else:
- data = None
+ kwargs = {}
existing_serializer = None
with override_method(view, request, method) as request:
@@ -460,11 +460,13 @@ class BrowsableAPIRenderer(BaseRenderer):
serializer = existing_serializer
else:
if method in ('PUT', 'PATCH'):
- serializer = view.get_serializer(instance=instance, data=data)
+ serializer = view.get_serializer(instance=instance, **kwargs)
else:
- serializer = view.get_serializer(data=data)
- if data is not None:
- serializer.is_valid()
+ serializer = view.get_serializer(**kwargs)
+
+ if hasattr(serializer, 'initial_data'):
+ serializer.is_valid()
+
form_renderer = self.form_renderer_class()
return form_renderer.render(
serializer.data,