每次Django模板sting comprasion返回True

时间:2017-03-26 23:08:23

标签: python html django python-3.x django-templates

如果我转到index或annoucements页面,我将分别使用'index'或'announcements'page_name发送到模板embed_text。它应该将活动类设置为导航栏中的当前链接。 As shown in the picture (movies is my index page)

这是我在index.html模板中的代码

{% if embed_text.page_name == 'index' %}
    {% block movies_active %}active{% endblock %}
{% endif %}
{% if embed_text.page_name == 'announcements' %}
    {% block announcements_active %}active{% endblock %}
{% endif %}

base.html模板中的代码扩展到index.html

<li class="{% block movies_active %}{% endblock %}"><a href="{% url 'movies:index' %}"> Movies</a></li>
<li class="{% block announcements_active %}{% endblock %}"><a href="{% url 'movies:announcements' %}"> Announcemets</a></li>

因此,每次两个表达式都返回True并将两个链接都设置为活动时,您可以在图片中看到它。我知道,我错过了一些细节。请帮忙解决。

1 个答案:

答案 0 :(得分:1)

block代码不受if代码的影响。你可以试试这个。

{% block movies_active %}{% if embed_text.page_name == 'index' %}active{% endif %}{% endblock %}
{% block announcements_active %}{% if embed_text.page_name == 'announcements' %}active{% endif %}{% endblock %}