aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rest_framework/settings.py6
-rw-r--r--rest_framework/utils/formatting.py46
2 files changed, 24 insertions, 28 deletions
diff --git a/rest_framework/settings.py b/rest_framework/settings.py
index b65e42cf..0b2bdb62 100644
--- a/rest_framework/settings.py
+++ b/rest_framework/settings.py
@@ -70,8 +70,8 @@ DEFAULTS = {
'PAGINATE_BY_PARAM': None,
# View configuration
- 'VIEW_NAME_FUNCTION': None,
- 'VIEW_DESCRIPTION_FUNCTION': None,
+ 'VIEW_NAME_FUNCTION': 'rest_framework.utils.formatting.view_name',
+ 'VIEW_DESCRIPTION_FUNCTION': 'rest_framework.utils.formatting.view_description',
# Authentication
'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser',
@@ -129,6 +129,8 @@ IMPORT_STRINGS = (
'TEST_REQUEST_RENDERER_CLASSES',
'UNAUTHENTICATED_USER',
'UNAUTHENTICATED_TOKEN',
+ 'VIEW_NAME_FUNCTION',
+ 'VIEW_DESCRIPTION_FUNCTION'
)
diff --git a/rest_framework/utils/formatting.py b/rest_framework/utils/formatting.py
index c908ce66..4f59f659 100644
--- a/rest_framework/utils/formatting.py
+++ b/rest_framework/utils/formatting.py
@@ -49,39 +49,15 @@ def _camelcase_to_spaces(content):
def get_view_name(cls, suffix=None):
"""
Return a formatted name for an `APIView` class or `@api_view` function.
- If a VIEW_NAME_FUNCTION is set in settings the value of that will be used
- if that value is "falsy" then the normal formatting will be used.
"""
- if api_settings.VIEW_NAME_FUNCTION:
- name = api_settings.VIEW_NAME_FUNCTION(cls, suffix)
- if name:
- return name
-
- name = cls.__name__
- name = _remove_trailing_string(name, 'View')
- name = _remove_trailing_string(name, 'ViewSet')
- name = _camelcase_to_spaces(name)
- if suffix:
- name += ' ' + suffix
- return name
+ return api_settings.VIEW_NAME_FUNCTION(cls, suffix)
def get_view_description(cls, html=False):
"""
Return a description for an `APIView` class or `@api_view` function.
- If a VIEW_DESCRIPTION_FUNCTION is set in settings the value of that will be used
- if that value is "falsy" then the normal formatting will be used.
"""
- if api_settings.VIEW_DESCRIPTION_FUNCTION:
- description = api_settings.VIEW_DESCRIPTION_FUNCTION(cls)
- if description:
- return markup_description(description)
-
- description = cls.__doc__ or ''
- description = _remove_leading_indent(smart_text(description))
- if html:
- return markup_description(description)
- return description
+ return api_settings.VIEW_DESCRIPTION_FUNCTION(cls)
def markup_description(description):
@@ -93,3 +69,21 @@ def markup_description(description):
else:
description = escape(description).replace('\n', '<br />')
return mark_safe(description)
+
+
+def view_name(cls, suffix=None):
+ name = cls.__name__
+ name = _remove_trailing_string(name, 'View')
+ name = _remove_trailing_string(name, 'ViewSet')
+ name = _camelcase_to_spaces(name)
+ if suffix:
+ name += ' ' + suffix
+
+ return name
+
+def view_description(cls, html=False):
+ description = cls.__doc__ or ''
+ description = _remove_leading_indent(smart_text(description))
+ if html:
+ return markup_description(description)
+ return description \ No newline at end of file