2015-07-08 2 views
7

У меня есть список словарей. Я хочу сначала отсортировать этот список, а затем перебрать только подмножество этих элементов.Как разрезать отсортированный список в Jinja?

Это то, что я пробовал:

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

Но Дзиндзя не нравится этот синтаксис, и поднимает ошибку TemplateSyntaxError: expected token 'end of statement block', got '['

Если я не использую sort() фильтр, срез работ. Но я хочу использовать их вместе.

ответ

6

Вы можете достичь этого путем оборачивать ваш sort через скобки:

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

Не можете ли вы просто обернуть responses|sort(true, attribute='response_date') круглыми скобками?

{% for response in (responses|sort(true, attribute='response_date'))[:5] %} 
    <p>response</p> 
{% endif %} 
Смежные вопросы