您不能使用
break,而是要过滤。从Jinja2文档上
{% for%}:与Python不同,它不可能中断或继续循环。但是,您可以在迭代过程中过滤序列,从而可以跳过项目。下面的示例跳过所有隐藏的用户:
{% for user in users if not user.hidden %} <li>{{ user.username|e }}</li>{% endfor %}
但是,就您而言,您似乎只需要第 一个 元素。只需过滤并选择第一个:
{{ (pages|selectattr('tags.foo', 'eq', bar)|first).title }}这将使用
selectattr()过滤器过滤列表,其结果将传递到
first过滤器。
该
selectattr()滤波器产生一个迭代,因此,使用
first这里将仅遍历输入到第一匹配部件,并且没有进一步的。



