Django-基于网页更改活动导航栏模板
我的html中有一个类似的模板。它使用引导类Django-基于网页更改活动导航栏模板,django,twitter-bootstrap,django-templates,Django,Twitter Bootstrap,Django Templates,我的html中有一个类似的模板。它使用引导类 <-- navbar-template.html> <div class="collapse navbar-collapse" id="myNavbar"> <ul class="nav navbar-nav"> <li><a href="/home/">Home</a></li> <li class='active'&g
<-- navbar-template.html>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li><a href="/home/">Home</a></li>
<li class='active'><a href="/members/">Members</a></li>
<li><a href="#">Research</a></li>
<li><a href="#">Publications</a></li>
<li><a href="#">Links</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
</div>
我喜欢活动类,但我需要更改它基于navbar django加载的页面的列表对象
我想您应该在home.html文件中执行类似的操作
<-- HOME -->
{% include "navbar_template.html" with page="home"} %}
###Do something with {{page}} variable in order to set the home list tag to active.
{%包括“navbar_template.html”和page=“home”}%}
###使用{page}}变量执行一些操作,以便将home list标记设置为active。
我需要写大量的if-else语句吗?还是有更简单的方法。也许可以使用django中的views.py来执行以下操作(我在页面上使用的示例解决方案):
{%url'main:home'作为home%}
{%url'main:work'作为work%}
{%url'main:personal'作为personal%}
您可以这样做(我在页面上使用的示例解决方案):
{%url'main:home'作为home%}
{%url'main:work'作为work%}
{%url'main:personal'作为personal%}
一个更干净的方法是创建一个。类似于的内容处于活动状态
:
# Inside custom tag - is_active.py
from django.template import Library
from django.core.urlresolvers import reverse
register = Library()
@register.simple_tag
def is_active(request, url):
# Main idea is to check if the url and the current path is a match
if request.path in reverse(url):
return "active"
return ""
并在模板中使用它,如下所示:
# template.html
{% load is_active %}
<li><a href="{% url 'home' %}" class="{% is_active request 'home' %}">Home</a></li>
#template.html
{%load是_active%}
一个更干净的方法是创建一个。类似于的内容处于活动状态
:
# Inside custom tag - is_active.py
from django.template import Library
from django.core.urlresolvers import reverse
register = Library()
@register.simple_tag
def is_active(request, url):
# Main idea is to check if the url and the current path is a match
if request.path in reverse(url):
return "active"
return ""
并在模板中使用它,如下所示:
# template.html
{% load is_active %}
<li><a href="{% url 'home' %}" class="{% is_active request 'home' %}">Home</a></li>
#template.html
{%load是_active%}
Sow是同一个url类,是否获取空字符串?标记在这两种情况下都是活动的。@darek_82如果请求的当前url与django url“home”匹配,则标记的css类为“活动”,否则它没有任何css类。Sow它是同一个url类。是否获取空字符串?标记在这两种情况下都是活动的。@darek_82如果请求的当前url与django url“home”匹配,则标记的css类为“活动”,否则它没有任何css类。