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

sky*_*ler 7 python jinja2

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

这是我试过的:

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

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

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

vau*_*tah 6

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

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


Won*_*ket 6

你可以通过sort括在括号中来实现这一点:

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