diff options
| author | Tom Christie | 2014-11-18 15:11:40 +0000 |
|---|---|---|
| committer | Tom Christie | 2014-11-18 15:11:40 +0000 |
| commit | 084354d3ebf3949f8c1664d68da4a568da0b10fa (patch) | |
| tree | d0370af46af2772fd2f9bc49667bd7967e3c03cb | |
| parent | 5e74f02d61e05d38bf4e22c6227144def2a96128 (diff) | |
| download | django-rest-framework-084354d3ebf3949f8c1664d68da4a568da0b10fa.tar.bz2 | |
Only pass instance to form for PUT and PATCH. Closes #2073.
| -rw-r--r-- | rest_framework/renderers.py | 10 |
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() |
