如何在Django模板中的if条件中嵌套块?
到目前为止,我已经尝试了这个,但是这3个块被称为:
{% if var = '1' %}
{% block a %}active{% endblock %}
{% elif var = '2' %}
{% block b %}active{% endblock %}
{% elif var = '3' %}
{% block c %}active{% endblock %}
{% endif %}
答案 0 :(得分:1)
有两种方法可以处理它。如果您希望它在一个模板中,那么您可以这样做:
{% block a %}{% if var = '1' %}active{% else %}{{ block.super }}{%endif%}{%endblock%}
{% block b %}{% if var = '2' %}active{% else %}{{ block.super }}{%endif%}{%endblock%}
{% block c %}{% if var = '3' %}active{% else %}{{ block.super }}{%endif%}{%endblock%}
另一种方法是创建多个模板,并根据var
确定使用哪个模板。
在var1.html中:
{% block a %}active{% endblock %}
在var2.html中:
{% block b %}active{% endblock %}
在var3.html中:
{% block c %}active{% endblock %}
您还可以使用您正在使用的模板扩展三个不同的模板。您将使用不同的活动元素进行三种变体。然后在你的模板中扩展其中一个,你可以这样做:
{% extend variable_name %}