From 4179982dc999207fe61221a44662bfe87940a1ea Mon Sep 17 00:00:00 2001 From: Shaun Stanworth Date: Mon, 13 May 2013 17:55:45 +0100 Subject: [PATCH] `show_form_for_method` expects request object with appropriate method pre-attached --- rest_framework/renderers.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 1917a0803..285b35672 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -336,7 +336,7 @@ class BrowsableAPIRenderer(BaseRenderer): return # Cannot use form overloading try: - view.check_permissions(clone_request(request, method)) + view.check_permissions(request) except exceptions.APIException: return False # Doesn't have permissions return True @@ -379,7 +379,9 @@ class BrowsableAPIRenderer(BaseRenderer): provide a form that can be used to submit arbitrary content. """ obj = getattr(view, 'object', None) - if not self.show_form_for_method(view, method, request, obj): + cloned_request = clone_request(request, method) + + if not self.show_form_for_method(view, method, cloned_request, obj): return if method in ('DELETE', 'OPTIONS'): @@ -413,7 +415,8 @@ class BrowsableAPIRenderer(BaseRenderer): # Check permissions obj = getattr(view, 'object', None) - if not self.show_form_for_method(view, method, request, obj): + cloned_request = clone_request(request, method) + if not self.show_form_for_method(view, method, cloned_request, obj): return content_type_field = api_settings.FORM_CONTENTTYPE_OVERRIDE