嵌套块里面如果条件django

时间:2015-04-10 16:33:34

标签: python django nested block

如何在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 %}

1 个答案:

答案 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 %}