Sha*_*naC 11 python django django-templates jinja2
我阅读了文档,我不清楚这是对的.我知道你可以使用嵌套for循环,但if语句似乎不同.
我可以做以下事吗?
{% if thing=true %}
<div> something here</div>
{% if diffthing=true %}
<div> something else</div>
{% else %}
<div> third thing</div>
{% endif %}
{% else %}
<div> nothing here </div>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
或者格式应该以某种方式不同?
小智 11
Jinja2支持嵌套块,包括if语句和其他控制结构.
请参阅有关块嵌套和范围的文档:"可以嵌套块以获得更复杂的布局."
一个很好的用例就是编写有条件地输出HTML的宏:
{# A macro that generates a list of errors coming back from wtforms's validate function #}
{% macro form_error_summary(form, li_class='bg-danger') %}
{# only do the following on error... #}
{% if form.errors %}
<ul class="errors">
{# you can do layers of nesting as needed to render your content #}
{% for _field in form %}
{% if _field.errors %}
{% for error in _field.errors %}
<li class={{li_class}}>{{_field.label}}: {{ error|e }}</li>
{% endfor %}
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)