【问题标题】:Nested block inside if condition djangoif条件django内的嵌套块
【发布时间】:2015-04-10 16:33:34
【问题描述】:

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

【问题讨论】:

    标签: python django nested block


    【解决方案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 %}
    

    【讨论】:

    • 我更喜欢只有一个模板,因为它们非常相似,而且更容易编辑。第一个选项效果很好。只是缺少 {% endif %} 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-10-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2012-08-18
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多