diff options
| author | Tom Christie | 2012-10-08 14:13:15 +0100 | 
|---|---|---|
| committer | Tom Christie | 2012-10-08 14:13:15 +0100 | 
| commit | f79ed6175df62f68dba9179f792f95b6ac6dca14 (patch) | |
| tree | a8c173b79405a820d170f4f938a566fac3e137a2 /rest_framework/views.py | |
| parent | 52ba2e333375c6829fb89b6b43e4d19b2f2a86a4 (diff) | |
| download | django-rest-framework-f79ed6175df62f68dba9179f792f95b6ac6dca14.tar.bz2 | |
Add RetrieveDestroyAPIView and remove Metadata mixin
Diffstat (limited to 'rest_framework/views.py')
| -rw-r--r-- | rest_framework/views.py | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/rest_framework/views.py b/rest_framework/views.py index 0aa1dd0d..790c76fa 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -124,6 +124,21 @@ class APIView(View):              description = escape(description).replace('\n', '<br />')          return mark_safe(description) +    def metadata(self, request): +        return { +            'name': self.get_name(), +            'description': self.get_description(), +            'renders': [renderer.media_type for renderer in self.renderer_classes], +            'parses': [parser.media_type for parser in self.parser_classes], +        } +        #  TODO: Add 'fields', from serializer info, if it exists. +        # serializer = self.get_serializer() +        # if serializer is not None: +        #     field_name_types = {} +        #     for name, field in form.fields.iteritems(): +        #         field_name_types[name] = field.__class__.__name__ +        #     content['fields'] = field_name_types +      def http_method_not_allowed(self, request, *args, **kwargs):          """          Called if `request.method` does not corrospond to a handler method. @@ -309,3 +324,11 @@ class APIView(View):          self.response = self.finalize_response(request, response, *args, **kwargs)          return self.response + +    def options(self, request, *args, **kwargs): +        """ +        Handler method for HTTP 'OPTIONS' request. +        We may as well implement this as Django will otherwise provide +        a less useful default implementation. +        """ +        return Response(self.metadata(request), status=status.HTTP_200_OK)  | 
