aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorTom Christie2014-12-17 14:14:51 +0000
committerTom Christie2014-12-17 14:14:51 +0000
commitc6137bbf5aa7ca800e4afc06657e5196b2e0e481 (patch)
treee857abf77665e4a6562caf84fb968be25c7c9309 /rest_framework/renderers.py
parent426547c61c725ca7dc47671c084d1a2805c92305 (diff)
downloaddjango-rest-framework-c6137bbf5aa7ca800e4afc06657e5196b2e0e481.tar.bz2
Serializer API restrictions.
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 cfcf1f5d..634338e9 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -544,12 +544,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:
@@ -569,11 +569,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,