diff options
| author | Tom Christie | 2013-05-05 16:48:00 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-05-05 16:48:00 +0100 | 
| commit | 660d2405174519628c72ed84a69ae37531df12f3 (patch) | |
| tree | 60d2c1a1718184ab9e426e63bf7cf443459d8bba /rest_framework/viewsets.py | |
| parent | 538d2e35e7f1e4623a215d1b8c684b284f951c09 (diff) | |
| download | django-rest-framework-660d2405174519628c72ed84a69ae37531df12f3.tar.bz2 | |
.action attribute on viewsets
Diffstat (limited to 'rest_framework/viewsets.py')
| -rw-r--r-- | rest_framework/viewsets.py | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/rest_framework/viewsets.py b/rest_framework/viewsets.py index a54467d7..0eb3e86d 100644 --- a/rest_framework/viewsets.py +++ b/rest_framework/viewsets.py @@ -59,6 +59,10 @@ class ViewSetMixin(object):          def view(request, *args, **kwargs):              self = cls(**initkwargs) +            # We also store the mapping of request methods to actions, +            # so that we can later set the action attribute. +            # eg. `self.action = 'list'` on an incoming GET request. +            self.action_map = actions              # Bind methods to actions              # This is the bit that's different to a standard view @@ -87,6 +91,15 @@ class ViewSetMixin(object):          view.suffix = initkwargs.get('suffix', None)          return view +    def initialize_request(self, request, *args, **kargs): +        """ +        Set the `.action` attribute on the view, +        depending on the request method. +        """ +        request = super(ViewSetMixin, self).initialize_request(request, *args, **kargs) +        self.action = self.action_map.get(request.method.lower()) +        return request +  class ViewSet(ViewSetMixin, views.APIView):      """ | 
