如何使用django模板添加类ACTIVE?

时间:2016-05-24 08:26:08

标签: django django-templates

<div class="menu-top" style="width:715px;">
  <ul class="nav nav-pills">
    <li>
      <a href="/link1"
      {% if request.path == '/phylosophy' %}class="active"{% endif %}>
      philosophy
      </a>
    </li>
    <li><a href="/link2"><u>{% trans 'product' %}</u></a></li>
    <li><a href="/link3"><u>{% trans 'contact' %}</u></a></li>
    <li><a href="/link4"><u>{% trans 'news' %}</u></a></li>
  </ul>
</div>

我需要将类.active添加到标记中。我做错了什么?

1 个答案:

答案 0 :(得分:2)

通常Django会将CollectionViewSource.GetDefaultView附加到网址,因此可能会更改为:

/

<强>附加

这种方法的一点是,如果你有一个更深的网址,如{% if request.path == '/phylosophy/' %}class="active"{% endif %}> ,你可能仍然希望保留/phylosophy/list/类,所以我通常做的是创建一个名为{{的模板标签1}}:

active

然后使用它:

startswith

<强> PS:

如果打印时@register.filter('startswith') def startswith(text, starts): if isinstance(text, basestring): return text.startswith(starts) return False 为空,则可能需要将其添加到上下文处理器(<li{% if request.path|startswith:'/phylosophy/' %} class="active"{% endif %}> ),例如:

request.path