Fix up breadcrumbs to only breadcrumb for REST framework Views

This commit is contained in:
Tom Christie 2011-05-24 10:40:35 +01:00
parent 370274f564
commit eafda85508
2 changed files with 9 additions and 6 deletions

View File

@ -19,11 +19,11 @@ class NestedResourceInstance(View):
pass pass
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^$', Root), url(r'^$', Root.as_view()),
url(r'^resource/$', ResourceRoot), url(r'^resource/$', ResourceRoot.as_view()),
url(r'^resource/(?P<key>[0-9]+)$', ResourceInstance), url(r'^resource/(?P<key>[0-9]+)$', ResourceInstance.as_view()),
url(r'^resource/(?P<key>[0-9]+)/$', NestedResourceRoot), url(r'^resource/(?P<key>[0-9]+)/$', NestedResourceRoot.as_view()),
url(r'^resource/(?P<key>[0-9]+)/(?P<other>[A-Za-z]+)$', NestedResourceInstance), url(r'^resource/(?P<key>[0-9]+)/(?P<other>[A-Za-z]+)$', NestedResourceInstance.as_view()),
) )

View File

@ -4,6 +4,8 @@ from djangorestframework.utils.description import get_name
def get_breadcrumbs(url): def get_breadcrumbs(url):
"""Given a url returns a list of breadcrumbs, which are each a tuple of (name, url).""" """Given a url returns a list of breadcrumbs, which are each a tuple of (name, url)."""
from djangorestframework.views import View
def breadcrumbs_recursive(url, breadcrumbs_list): def breadcrumbs_recursive(url, breadcrumbs_list):
"""Add tuples of (name, url) to the breadcrumbs list, progressively chomping off parts of the url.""" """Add tuples of (name, url) to the breadcrumbs list, progressively chomping off parts of the url."""
@ -12,7 +14,8 @@ def get_breadcrumbs(url):
except: except:
pass pass
else: else:
if callable(view): # Check if this is a REST framework view, and if so add it to the breadcrumbs
if isinstance(getattr(view, 'cls_instance', None), View):
breadcrumbs_list.insert(0, (get_name(view), url)) breadcrumbs_list.insert(0, (get_name(view), url))
if url == '': if url == '':