我正在构建一个包含几个主要部分的webapp。每个部分都有几个子部分。我有一个main_nav.html保存导航栏的文件。HTML使用模板中的{% include ... %}命令将其添加到基于文件base.html。此外,我有几个小节nav文件,每个文件都使用同一{% include ... %}命令添加到任何给定页面。
main_nav.html
{% include ... %}
base.html
所有的导航栏都非常简单,只是带有<a href...>标签的文本。
<a href...>
我想突出显示当前主要部分和当前子部分的链接。由于此Web应用程序很大,因此我希望以某种方式完成此操作而不添加特定于页面的信息。另外,随着webapp扩展到包括更多的部分和子部分,我希望它只是“工作”。例如,是否可以通过查看实际使用的URL来完成?我希望可以将其放在nav文件本身中,而不必在每个django视图中加载一些变量或其他内容。
因此,例如,导航看起来像这样:
(main ->) [Systems][Invoices][Work Orders][Admin] (system sub-nav ->) [Owner][Billing][Contacts]
因此,如果我在的Billing部分中Systems,我希望该链接Systems以粗体显示并且该链接Billing以粗体显示(或其他一些简单的突出显示)
Billing
Systems
要么:
(main ->) [Systems][Invoices][Work Orders][Admin] (Work-Orders sub-nav ->) [Create New][Outstanding]
如果我在的Outstanding部分中Work Orders,则该链接Work Orders和该链接Outstanding需要突出显示。
Outstanding
Work Orders
假设你用render_to_response用RequestContext或使用render的Django 1.3基于类的方法或意见,你必须在你的模板中提供的请求对象。从那里开始,只需访问当前路径并将其与期望值进行比较就很简单了:
render_to_response
RequestContext
render
<a href="/some/path/to/be/highlighted/"{% if request.path == '/some/path/to/be/highlighted/' %} class="active"{% endif %}>Some Link</a>
在Django 1.3中,我想保存冗余并使用as运算符进行URL查找:
{% url 'some_urlpattern_name' as url %} <a href="{{ url }}"{% if request.path == url %} class="active"{% endif %}>Some Link</a>
对每个链接根据需要重复。