Подтвердить что ты не робот

Пересечение подмножества в Jinja

Jinja позволяет мне делать

{% for item in all_items %}
    {{ item }}
{% endfor %}

но я хотел бы иметь возможность брать только первые n элементов; в Python, который будет

for item in all_items[:n]:

Есть ли элегантный способ сделать это в Jinja, кроме

{% for item in all_items %}
    {% if loop.index <= n %}
        {{ item }}
    {% endif %}
{% endfor %}
4b9b3361

Ответ 1

Вы можете использовать обычный синтаксис фрагмента питона.

>>> import jinja2
>>> t = jinja2.Template("{% for i in items[:3] %}{{ i }}\n{% endfor %}")
>>> items = range(10)
>>> print(t.render(items=items))
0
1
2