我有一个词典列表。我想首先对该列表进行排序,然后只迭代这些项的子集。
这就是我的尝试:
{% for response in responses|sort(true, attribute='response_date')[:5] %}
<p>response</p>
{% endfor %}
但Jinja不喜欢这种语法,并引发了错误
TemplateSyntaxError: expected token 'end of statement block', got '['
如果我不使用sort()
过滤器,则切片有效。但我想一起使用。
答案 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 %}