How can I break a for loop in jinja2?

You can’t use break, you’d filter instead. From the 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 %}

In your case, however, you appear to only need the first element; just filter and pick the first:

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

This filters the list using the selectattr() filter, the result of which is passed to the first filter.

The selectattr() filter produces an iterator, so using first here will only iterate over the input up to the first matching element, and no further.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)