aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2014-11-18 15:11:40 +0000
committerTom Christie2014-11-18 15:11:40 +0000
commit084354d3ebf3949f8c1664d68da4a568da0b10fa (patch)
treed0370af46af2772fd2f9bc49667bd7967e3c03cb
parent5e74f02d61e05d38bf4e22c6227144def2a96128 (diff)
downloaddjango-rest-framework-084354d3ebf3949f8c1664d68da4a568da0b10fa.tar.bz2
Only pass instance to form for PUT and PATCH. Closes #2073.
-rw-r--r--rest_framework/renderers.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index eb04e81e..7c2b5156 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -547,7 +547,10 @@ class BrowsableAPIRenderer(BaseRenderer):
if existing_serializer is not None:
serializer = existing_serializer
else:
- serializer = view.get_serializer(instance=instance, data=data)
+ if method in ('PUT', 'PATCH'):
+ serializer = view.get_serializer(instance=instance, data=data)
+ else:
+ serializer = view.get_serializer(data=data)
if data is not None:
serializer.is_valid()
form_renderer = self.form_renderer_class()
@@ -584,7 +587,10 @@ class BrowsableAPIRenderer(BaseRenderer):
# View has a serializer defined and parser class has a
# corresponding renderer that can be used to render the data.
- serializer = view.get_serializer(instance=instance)
+ if method in ('PUT', 'PATCH'):
+ serializer = view.get_serializer(instance=instance)
+ else:
+ serializer = view.get_serializer()
# Render the raw data content
renderer = renderer_class()