在Jinja循环子集

时间:2012-03-07 22:55:05

标签: python jinja2

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

1 个答案:

答案 0 :(得分:21)

您可以使用普通的python切片语法。

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