首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展模板的活动标记

扩展模板的活动标记
EN

Stack Overflow用户
提问于 2019-10-27 13:26:15
回答 2查看 123关注 0票数 0

我是Django的新手,需要一些模板继承方面的帮助。我想为当前的活动页面设置“class=”active,但是我如何处理模板继承,因为它对所有页面都是通用的,但是active应该在更改当前活动页面时发生变化。我知道这个问题可能很傻,但我仍然不知道答案。

我不知道这个案子该怎么办。

扩展的html

代码语言:javascript
复制
  <ul class="navbar-nav mr-auto">
  <li class="nav-item mx-3">
    <a class="nav-link" {% if '/Homepage/' in request.path %} class ="active" {% endif %} href="{% url 'success' %}">Home <span class="sr-only">(current)</span></a>
  </li>
  <li class="nav-item mx-3">
    <a class="nav-link" {% if '/booking/' in request.path %} class ="active" {% endif %} href="{% url 'booking' %}">Make a Booking</a>
  </li>
  <li class="nav-item mx-3">
    <a class="nav-link" {% if '/Hsitory/' in request.path %} class ="active" {% endif %} href="{% url 'History' %}">History</a>
  </li>
  <li class="nav-item mx-3">
    <a class="nav-link" {% if '/pending/' in request.get_full_path %} class ="active" {% endif %} href="{% url 'pending' %}">Pending requests</a>
  </li>
</ul>

urls.py

代码语言:javascript
复制
urlpatterns = [
path('', views.loginpage, name="loginpage"),
path("failed/", views.failed, name="failed"),
path("Homepage/", views.success, name="success"),
path("loggedout/", views.loggedout, name="logout"),
path("booking/", views.booking, name="booking"),
path("pending/", views.pending, name="pending"),
path("History/", views.History, name="History"),
path("Register/", views.Register, name="Register"),
]

我希望active类可能只应用于当前的活动页面。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-27 13:38:17

你可以这样做。

代码语言:javascript
复制
<a class="nav-link" {% if '/Homepage/' in request.path %} class ="active" {% endif %} href="/Homepage/">Home <span class="sr-only">(current)</span></a>

还可以更好地使用django url模板标签

编辑:我认为您提供了错误的url模式,您也可以这样做。

代码语言:javascript
复制
{% url 'homepage' as url %}
<a {% if request.path == url %} class="active"{% endif %} href="{{ url }}" >Homepage</a>

锚标记中有两个class属性,因此可以将其更改为

代码语言:javascript
复制
 <a class="nav-link{% if request.path == url %} active{% endif %}">Home <span class="sr-only">(current)</span></a>
票数 1
EN

Stack Overflow用户

发布于 2019-10-27 16:28:23

扩展的

代码语言:javascript
复制
<li class="nav-item mx-3">
      {% url 'success' as Homepage %}
      {% if request.path != Homepage %} <a class="nav-link" href="{% url 'success' %}">Home <span
          class="sr-only">(current)</span></a>
      {% else %}
      <a class="nav-link active" href="{{ Homepage }}">Home <span class="sr-only">(current)</span></a>
      {% endif %}
    </li>
    <li class="nav-item mx-3">
      {% url 'booking' as booking %}
      {% if request.path != booking %} <a class="nav-link" href="{{ booking }}">Make a Booking</a>
      {% else %}
      <a class="nav-link active" href="{{ booking }}">Make a Booking</a>
      {% endif %}
    </li>
    <li class="nav-item mx-3">
      {% url 'History' as History %}
      {% if request.path != History %} <a class="nav-link" href="{{ History }}">History</a>
      {% else %}
      <a class="nav-link active" href="{{ History }}">History</a>
      {% endif %}

    </li>
    <li class="nav-item mx-3">
      {% url 'pending' as pending %}
      {% if request.path != pending %} <a class="nav-link" href="{{ pending }}">Pending requests</a>
    </li>
    {% else %}
    <a class="nav-link active " href="{{ pending }}">Pending requests</a>
    {% endif %}

    </li>

使用request.path作为解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58579835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档