如何在Jinja中对排序列表进行切片?

时间:2015-07-08 19:10:48

标签: python jinja2

我有一个词典列表。我想首先对该列表进行排序,然后只迭代这些项的子集。

这就是我的尝试:

{% for response in responses|sort(true, attribute='response_date')[:5] %}
    <p>response</p>
{% endfor %}

但Jinja不喜欢这种语法,并引发了错误 TemplateSyntaxError: expected token 'end of statement block', got '['

如果我不使用sort()过滤器,则切片有效。但我想一起使用。

2 个答案:

答案 0 :(得分:6)

您可以通过将sort包装在括号中来实现此目的:

{% for response in (responses|sort(true, attribute='response_date'))[:5] %}
   <p>response</p>
{% endfor %}

答案 1 :(得分:4)

你不能用括号括起responses|sort(true, attribute='response_date')吗?

{% for response in (responses|sort(true, attribute='response_date'))[:5] %}
    <p>response</p>
{% endif %}