Skip to content

Commit 3d0292e

Browse files
committed
Do not ignore overridden View.get_view_name() in breadcrumbs
1 parent 1b53e80 commit 3d0292e

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

rest_framework/utils/breadcrumbs.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ def breadcrumbs_recursive(url, breadcrumbs_list, prefix, seen):
3232
# Don't list the same view twice in a row.
3333
# Probably an optional trailing slash.
3434
if not seen or seen[-1] != view:
35-
suffix = getattr(view, 'suffix', None)
36-
name = view_name_func(cls, suffix)
35+
name = cls().get_view_name()
3736
insert_url = preserve_builtin_query_params(prefix + url, request)
3837
breadcrumbs_list.insert(0, (name, insert_url))
3938
seen.append(view)

tests/test_utils.py

+16
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,15 @@ class NestedResourceRoot(APIView):
3131
class NestedResourceInstance(APIView):
3232
pass
3333

34+
class CustomNameResourceInstance(APIView):
35+
def get_view_name(self):
36+
return "Foo"
37+
3438

3539
urlpatterns = [
3640
url(r'^$', Root.as_view()),
3741
url(r'^resource/$', ResourceRoot.as_view()),
42+
url(r'^resource/customname$', CustomNameResourceInstance.as_view()),
3843
url(r'^resource/(?P<key>[0-9]+)$', ResourceInstance.as_view()),
3944
url(r'^resource/(?P<key>[0-9]+)/$', NestedResourceRoot.as_view()),
4045
url(r'^resource/(?P<key>[0-9]+)/(?P<other>[A-Za-z]+)$', NestedResourceInstance.as_view()),
@@ -75,6 +80,17 @@ def test_resource_instance_breadcrumbs(self):
7580
]
7681
)
7782

83+
def test_resource_instance_customname_breadcrumbs(self):
84+
url = '/resource/customname'
85+
self.assertEqual(
86+
get_breadcrumbs(url),
87+
[
88+
('Root', '/'),
89+
('Resource Root', '/resource/'),
90+
('Foo', '/resource/customname')
91+
]
92+
)
93+
7894
def test_nested_resource_breadcrumbs(self):
7995
url = '/resource/123/'
8096
self.assertEqual(

0 commit comments

Comments
 (0)