我在导航栏上的导航栏上有一堆链接
<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,所以我问社区是否有更流畅的方式来代表这个?
答案 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>