gpt4 book ai didi

python - 如何打破 jinja2 中的 for 循环?

转载 作者:IT老高 更新时间:2023-10-28 22:03:00 28 4
gpt4 key购买 nike

如何在 jinja2 中跳出 for 循环?

我的代码是这样的:

<a href="#">
{% for page in pages if page.tags['foo'] == bar %}
{{page.title}}
{% break %}
{% endfor %}
</a>

我有不止一个页面具有此条件,我想在满足条件后结束循环。

最佳答案

您不能使用 break,而是使用过滤器。来自 Jinja2 documentation on {% for %} :

Unlike in Python it’s not possible to break or continue in a loop. You can however filter the sequence during iteration which allows you to skip items. The following example skips all the users which are hidden:

{% for user in users if not user.hidden %}
<li>{{ user.username|e }}</li>
{% endfor %}

但是,在您的情况下,您似乎只需要 first 元素;只需过滤并选择第一个:

{{ (pages|selectattr('tags.foo', 'eq', bar)|first).title }}

这会使用 selectattr() filter 过滤列表,其结果被传递给 first filter .

selectattr() 过滤器生成一个迭代器,因此在此处使用 first 只会迭代输入直到第一个匹配元素,而不会进一步迭代。

关于python - 如何打破 jinja2 中的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22150273/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com