aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/request.py
diff options
context:
space:
mode:
authorTom Christie2014-08-18 20:56:17 +0100
committerTom Christie2014-08-18 20:56:17 +0100
commit97d8f037cc1292407eae965ceb4df34a52bd6161 (patch)
tree8739381b175b4749708e500327c16c110baaeaba /rest_framework/request.py
parent01986fc80eb1d07c11322991ddc6d4cfc105a6d9 (diff)
downloaddjango-rest-framework-97d8f037cc1292407eae965ceb4df34a52bd6161.tar.bz2
Only set .action attribute in override_method if it already existed on the view
Diffstat (limited to 'rest_framework/request.py')
-rw-r--r--rest_framework/request.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/rest_framework/request.py b/rest_framework/request.py
index 4f9345f3..d508f9b4 100644
--- a/rest_framework/request.py
+++ b/rest_framework/request.py
@@ -46,13 +46,16 @@ class override_method(object):
def __enter__(self):
self.view.request = clone_request(self.request, self.method)
- action_map = getattr(self.view, 'action_map', {})
- self.view.action = action_map.get(self.method.lower())
+ if self.action is not None:
+ # For viewsets we also set the `.action` attribute.
+ action_map = getattr(self.view, 'action_map', {})
+ self.view.action = action_map.get(self.method.lower())
return self.view.request
def __exit__(self, *args, **kwarg):
- self.view.action = self.action
self.view.request = self.request
+ if self.action is not None:
+ self.view.action = self.action
class Empty(object):