【发布时间】:2017-10-04 21:12:39
【问题描述】:
在 jinja 模板中,我的脚本中有一个 for 循环,开始标记 {% for each in list_one %} 和结束标记 {% endfor %}。
我想设置 2 个条件来选择 for 循环的起始标记来工作。像这样的:
{% if name %}
{% for each in list_one %}
{% else %}
{% for each in list_two %}
{{ each }}
{% endif %}
{% endfor %}
我面临的错误是:
jinja2.exceptions.TemplateSyntaxError:遇到未知标签“endif”。 您可能犯了嵌套错误。 Jinja 期待这个标签,但是 目前正在寻找“endfor”或“else”。最里面的块 需要关闭的是'for'。
【问题讨论】:
-
在 if 或 else 部分开始
for意味着您也必须在该部分结束它。现在你在 if 和 else 中开始for,并在 endif 之后结束它。将它们视为 HTML 标记,它们成对出现并需要正确嵌套 -
这对你不起作用。您必须在
if关闭之前关闭for循环。
标签: python for-loop if-statement jinja2