mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 19:40:13 +03:00
Merge e3f9e49e7d
into a8d129b7da
This commit is contained in:
commit
f9add99eb0
|
@ -400,7 +400,7 @@ This should be a function with the following signature:
|
|||
|
||||
view_name(cls, suffix=None)
|
||||
|
||||
* `cls`: The view class. Typically the name function would inspect the name of the class when generating a descriptive name, by accessing `cls.__name__`.
|
||||
* `cls`: The view class. Typically the name function would inspect the name of the class when generating a descriptive name, by accessing `cls.__name__`. You can set a different name by setting `view_name` variable in your view.
|
||||
* `suffix`: The optional suffix used when differentiating individual views in a viewset.
|
||||
|
||||
Default: `'rest_framework.views.get_view_name'`
|
||||
|
|
|
@ -28,7 +28,7 @@ def get_view_name(view_cls, suffix=None):
|
|||
|
||||
This function is the default for the `VIEW_NAME_FUNCTION` setting.
|
||||
"""
|
||||
name = view_cls.__name__
|
||||
name = view_cls.view_name if hasattr(view_cls, 'view_name') else view_cls.__name__
|
||||
name = formatting.remove_trailing_string(name, 'View')
|
||||
name = formatting.remove_trailing_string(name, 'ViewSet')
|
||||
name = formatting.camelcase_to_spaces(name)
|
||||
|
|
|
@ -39,6 +39,10 @@ class CustomNameResourceInstance(APIView):
|
|||
return "Foo"
|
||||
|
||||
|
||||
class CustomNameByVariableResourceInstance(APIView):
|
||||
view_name = "Bar"
|
||||
|
||||
|
||||
class ResourceViewSet(ModelViewSet):
|
||||
serializer_class = ModelSerializer
|
||||
queryset = BasicModel.objects.all()
|
||||
|
@ -50,6 +54,7 @@ urlpatterns = [
|
|||
url(r'^$', Root.as_view()),
|
||||
url(r'^resource/$', ResourceRoot.as_view()),
|
||||
url(r'^resource/customname$', CustomNameResourceInstance.as_view()),
|
||||
url(r'^resource/customnamebyvar$', CustomNameByVariableResourceInstance.as_view()),
|
||||
url(r'^resource/(?P<key>[0-9]+)$', ResourceInstance.as_view()),
|
||||
url(r'^resource/(?P<key>[0-9]+)/$', NestedResourceRoot.as_view()),
|
||||
url(r'^resource/(?P<key>[0-9]+)/(?P<other>[A-Za-z]+)$', NestedResourceInstance.as_view()),
|
||||
|
@ -88,6 +93,14 @@ class BreadcrumbTests(TestCase):
|
|||
('Foo', '/resource/customname')
|
||||
]
|
||||
|
||||
def test_resource_instance_customnamebyvar_breadcrumbs(self):
|
||||
url = '/resource/customnamebyvar'
|
||||
assert get_breadcrumbs(url) == [
|
||||
('Root', '/'),
|
||||
('Resource Root', '/resource/'),
|
||||
('Bar', '/resource/customnamebyvar')
|
||||
]
|
||||
|
||||
def test_nested_resource_breadcrumbs(self):
|
||||
url = '/resource/123/'
|
||||
assert get_breadcrumbs(url) == [
|
||||
|
|
Loading…
Reference in New Issue
Block a user