Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-基于网页更改活动导航栏模板_Django_Twitter Bootstrap_Django Templates - Fatal编程技术网

Django-基于网页更改活动导航栏模板

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

我的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'><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类。