当前位置: 首页 > 面试题库 >

Django-根据当前页面突出显示导航?

云慈
2023-03-14
问题内容

我正在构建一个包含几个主要部分的webapp。每个部分都有几个子部分。我有一个main_nav.html保存导航栏的文件。HTML使用模板中的{% include ... %}命令将其添加到基于文件base.html。此外,我有几个小节nav文件,每个文件都使用同一{% include ... %}命令添加到任何给定页面。

所有的导航栏都非常简单,只是带有<a href...>标签的文本。

我想突出显示当前主要部分和当前子部分的链接。由于此Web应用程序很大,因此我希望以某种方式完成此操作而不添加特定于页面的信息。另外,随着webapp扩展到包括更多的部分和子部分,我希望它只是“工作”。例如,是否可以通过查看实际使用的URL来完成?我希望可以将其放在nav文件本身中,而不必在每个django视图中加载一些变量或其他内容。

因此,例如,导航看起来像这样:

(main ->)            [Systems][Invoices][Work Orders][Admin]
(system sub-nav ->)  [Owner][Billing][Contacts]

因此,如果我在的Billing部分中Systems,我希望该链接Systems以粗体显示并且该链接Billing以粗体显示(或其他一些简单的突出显示)

要么:

(main ->)                 [Systems][Invoices][Work Orders][Admin]
(Work-Orders sub-nav ->)  [Create New][Outstanding]

如果我在的Outstanding部分中Work Orders,则该链接Work Orders和该链接Outstanding需要突出显示。


问题答案:

假设你用render_to_responseRequestContext或使用render的Django 1.3基于类的方法或意见,你必须在你的模板中提供的请求对象。从那里开始,只需访问当前路径并将其与期望值进行比较就很简单了:

<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>

对每个链接根据需要重复。



 类似资料:
  • 问题内容: AngularJS是否可以在当前页面的链接上设置类提供任何帮助? 我想象有一种神奇的方法可以完成,但是我似乎找不到。 我的菜单如下: 并且我在自己的路线中有针对每个控制器的控制器:和。 但是我想不出一种方法来将链接上的“活动”类绑定到控制器。 有什么提示吗? 问题答案: 在看 在控制器上 这样,任务链接将在以’/ tasks’开头的任何url中具有活动类(例如’/ tasks / 1

  • 本文向大家介绍根据当前时间在jsp页面上显示上午或下午,包括了根据当前时间在jsp页面上显示上午或下午的使用技巧和注意事项,需要的朋友参考一下 只要在jsp页面中假如如下代码就行 应用例子:

  • 本文向大家介绍django 前端页面如何实现显示前N条数据,包括了django 前端页面如何实现显示前N条数据的使用技巧和注意事项,需要的朋友参考一下 这个涉及到的知识点是django数据库查询问题,我们可以在view.py文件中操作 blog_list = models.Blog.objects.all()[:3] 这是选取数据库的前三条数据 补充知识:django 数据库查询—如何获取指定范围

  • 本文向大家介绍HTML 突出显示,包括了HTML 突出显示的使用技巧和注意事项,需要的朋友参考一下 示例 该<mark>元素是HTML5中的新元素,用于“由于其在另一个上下文中的相关性”而标记或突出显示文档中的文本。1 最常见的示例是用户输入搜索查询并显示结果以突出显示所需查询的搜索结果。 输出: 常见的标准格式是黄色背景上的黑色文本,但是可以使用CSS进行更改。

  • 在我的Android应用程序中,我有一个滑出式导航抽屉。当在导航抽屉中选择一个项目时,它将加载新片段并高亮显示您在导航抽屉中单击的项目。 我的问题是,在加载的新片段中,您可以单击该片段中的一个新项目,该项目将加载一个新片段,并且仍然保留导航抽屉。 在这种情况下,您不再位于导航抽屉中列出的片段上,但最后一个项目仍然高亮显示,然后无法再次单击返回。 当导航抽屉中的项目不是我的主要片段时,如何取消高亮显

  • 问题内容: 我有一个基于以下示例的菜单: item是一个对象,包含菜单项信息。这是指令和控制器的JavaScript代码: 问题是,套到只有一次页面渲染过程中,但是当你点击一个菜单项,没有一切发生的时候。我想这是因为菜单本身并未重新加载,而我只是在其中更改了数据。那么如何在不重新加载整个页面的情况下使它工作呢? 问题答案: 试试看:-http : //jsfiddle.net/uDPHL/146/