我想在我的页面中放置一个“位置路径”,显示用户所在的位置。
假设用户正在观看一个产品,可能是Index > Products > ProductName
,其中每个单词也是指向其他页面的链接。
我正在考虑使用类似[(_('Index'), 'index_url_name'), (_('Products'), 'products_list_url_name'), (_('ProductName'), 'product_url_name')]
但后来我想知道你在哪里以及如何定义层次结构而不重复自己(DRY)?
据我所知,我已经看到了两个选项
另外,我不确定如何处理需要参数的网址。
您对此有任何提示或建议吗?有没有任何规范的方法来做到这一点?
答案 0 :(得分:1)
在Django中有许多片段和可重复使用的应用程序来做面包屑。以下是一些要看的内容。
片段:
http://djangosnippets.org/snippets/1487/
http://djangosnippets.org/snippets/1026/
应用程序:
http://code.google.com/p/django-breadcrumbs/
http://code.google.com/p/django-crumbs/
希望他们中的一个会为你工作,或者至少让你朝着正确的方向前进。
答案 1 :(得分:0)
网址通常隐含“层次结构”。
您可以 - 平凡地 - 在传递给view函数的urls.py中添加信息。这可以通过view函数传递给模板。
请参阅http://docs.djangoproject.com/en/1.2/topics/http/urls/#patterns
在您的网址中提供带有路径信息的“可选字典”。
您也可以这样做。
url( r'/(?P<level1>path)/(?P<level2>to)/(?P<level3>resource)/', ... )
这可能会节省一些“重复”。