mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-03 05:04:31 +03:00
Ability to override name/description of view
Added settings and additions to formatting.py
This commit is contained in:
parent
c245fc6cde
commit
d07dae6e79
|
@ -69,6 +69,10 @@ DEFAULTS = {
|
||||||
'PAGINATE_BY': None,
|
'PAGINATE_BY': None,
|
||||||
'PAGINATE_BY_PARAM': None,
|
'PAGINATE_BY_PARAM': None,
|
||||||
|
|
||||||
|
# View configuration
|
||||||
|
'VIEW_NAME_FUNCTION': None,
|
||||||
|
'VIEW_DESCRIPTION_FUNCTION': None,
|
||||||
|
|
||||||
# Authentication
|
# Authentication
|
||||||
'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser',
|
'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser',
|
||||||
'UNAUTHENTICATED_TOKEN': None,
|
'UNAUTHENTICATED_TOKEN': None,
|
||||||
|
|
|
@ -7,6 +7,7 @@ from django.utils.html import escape
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from rest_framework.compat import apply_markdown, smart_text
|
from rest_framework.compat import apply_markdown, smart_text
|
||||||
import re
|
import re
|
||||||
|
from rest_framework.settings import api_settings
|
||||||
|
|
||||||
|
|
||||||
def _remove_trailing_string(content, trailing):
|
def _remove_trailing_string(content, trailing):
|
||||||
|
@ -48,7 +49,14 @@ def _camelcase_to_spaces(content):
|
||||||
def get_view_name(cls, suffix=None):
|
def get_view_name(cls, suffix=None):
|
||||||
"""
|
"""
|
||||||
Return a formatted name for an `APIView` class or `@api_view` function.
|
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 = cls.__name__
|
||||||
name = _remove_trailing_string(name, 'View')
|
name = _remove_trailing_string(name, 'View')
|
||||||
name = _remove_trailing_string(name, 'ViewSet')
|
name = _remove_trailing_string(name, 'ViewSet')
|
||||||
|
@ -61,7 +69,14 @@ def get_view_name(cls, suffix=None):
|
||||||
def get_view_description(cls, html=False):
|
def get_view_description(cls, html=False):
|
||||||
"""
|
"""
|
||||||
Return a description for an `APIView` class or `@api_view` function.
|
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 = cls.__doc__ or ''
|
||||||
description = _remove_leading_indent(smart_text(description))
|
description = _remove_leading_indent(smart_text(description))
|
||||||
if html:
|
if html:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user