Bootstrap上的活动标签与Django

时间:2015-10-04 08:17:17

标签: python django twitter-bootstrap

我在导航栏上的导航栏上有一堆链接

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

假设我在“主页”部分,我想在Django上添加<li class="active">文本。

我的第一直觉是使用 views.py 的上下文变量并执行类似

的操作
context = { 'section' : 'home' }

然后匹配字符串

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

对我而言,这似乎违反了DRY,所以我问社区是否有更流畅的方式来代表这个?

1 个答案:

答案 0 :(得分:1)

我更喜欢在模板中检查网址:

<li {% if "/" == request.path %}class="active"{% endif %}><a href="{% url 'home' %}">Home</a></li>
<li {% if 'mypage1' in request.path %}class="active"{% endif %}><a href="{% url 'my_page_1' %}">My Page 1</a></li>