Цикл по подмножеству в Джинджа - PullRequest
13 голосов
/ 08 марта 2012

Джинджа позволяет мне делать

{% 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 %}

1 Ответ

21 голосов
/ 08 марта 2012

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

>>> import jinja2
>>> t = jinja2.Template("{% for i in items[:3] %}{{ i }}\n{% endfor %}")
>>> items = range(10)
>>> print(t.render(items=items))
0
1
2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...