aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/views.py
diff options
context:
space:
mode:
authorTom Christie2013-08-19 08:45:53 +0100
committerTom Christie2013-08-19 08:45:53 +0100
commit512067062419b736b65ca27bdb5663d863c775dd (patch)
tree2992e9726542434b1058277bb5d8901c1e70eed8 /rest_framework/views.py
parent89b0a539c389477cfd7df7df461868b85f618d95 (diff)
downloaddjango-rest-framework-512067062419b736b65ca27bdb5663d863c775dd.tar.bz2
Document customizable view names/descriptions
Diffstat (limited to 'rest_framework/views.py')
-rw-r--r--rest_framework/views.py42
1 files changed, 20 insertions, 22 deletions
diff --git a/rest_framework/views.py b/rest_framework/views.py
index 431e21f9..727a9f95 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -15,8 +15,8 @@ from rest_framework.settings import api_settings
from rest_framework.utils import formatting
-def get_view_name(instance, view, suffix=None):
- name = view.__name__
+def get_view_name(cls, suffix=None):
+ name = cls.__name__
name = formatting.remove_trailing_string(name, 'View')
name = formatting.remove_trailing_string(name, 'ViewSet')
name = formatting.camelcase_to_spaces(name)
@@ -25,8 +25,8 @@ def get_view_name(instance, view, suffix=None):
return name
-def get_view_description(instance, view, html=False):
- description = view.__doc__ or ''
+def get_view_description(cls, html=False):
+ description = cls.__doc__ or ''
description = formatting.dedent(smart_text(description))
if html:
return formatting.markup_description(description)
@@ -43,9 +43,6 @@ class APIView(View):
permission_classes = api_settings.DEFAULT_PERMISSION_CLASSES
content_negotiation_class = api_settings.DEFAULT_CONTENT_NEGOTIATION_CLASS
- view_name_function = api_settings.VIEW_NAME_FUNCTION
- view_description_function = api_settings.VIEW_DESCRIPTION_FUNCTION
-
@classmethod
def as_view(cls, **initkwargs):
"""
@@ -131,6 +128,22 @@ class APIView(View):
'request': getattr(self, 'request', None)
}
+ def get_view_name(self):
+ """
+ Return the view name, as used in OPTIONS responses and in the
+ browsable API.
+ """
+ func = api_settings.VIEW_NAME_FUNCTION
+ return func(self.__class__, getattr(self, 'suffix', None))
+
+ def get_view_description(self, html=False):
+ """
+ Return some descriptive text for the view, as used in OPTIONS responses
+ and in the browsable API.
+ """
+ func = api_settings.VIEW_DESCRIPTION_FUNCTION
+ return func(self.__class__, html)
+
# API policy instantiation methods
def get_format_suffix(self, **kwargs):
@@ -178,21 +191,6 @@ class APIView(View):
self._negotiator = self.content_negotiation_class()
return self._negotiator
- def get_view_name(self):
- """
- Get the view name
- """
- # This is used by ViewSets to disambiguate instance vs list views
- view_name_suffix = getattr(self, 'suffix', None)
-
- return self.view_name_function(self.__class__, view_name_suffix)
-
- def get_view_description(self, html=False):
- """
- Get the view description
- """
- return self.view_description_function(self.__class__, html)
-
# API policy implementation methods
def perform_content_negotiation(self, request, force=False):