如果条件 django 内嵌套块

Nested block inside if condition django

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

有两种处理方法。如果你希望它在一个模板中,那么你可以这样做:

{% 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 %}