Django动态获取视图URL并检查它是否是当前页面

时间:2014-02-26 16:24:33

标签: python django django-templates

考虑这个基本菜单:

<ul class="nav navbar-nav">
  <li class="active"><a href="{% url 'home' %}">Home</a></li>
  <li><a href="{% url 'about' %}">About</a></li>
</ul>

我正在尝试将当前页面的链接作为活动类,我想基于当前url和视图的url动态执行此操作。因此,当用户访问about页面时,该页面现在具有活动类,而主页不具有。

我希望逻辑在<li></li>标记内部像这样工作:

{% if request.get_full_path = "{% url 'home' %}" %}class="active"{% endif %}
{% if request.get_full_path = "{% url 'about' %}" %}class="active"{% endif %}

但显然我不能将两个{% ... %}嵌套在一起。

关于如何绕过这两个人的任何想法?

1 个答案:

答案 0 :(得分:33)

我通常在导航中使用模板继承,方式与answer alecxe linked to类似。但是,可以比较if标记中当前URL的使用情况。

url标记允许您将结果保存到变量中。然后,您可以在if标记中使用该变量。

{% url 'home' as home_url %}
{% if request.get_full_path == home_url %}class="active"{% endif %}