Как вы сортируете список в Jinja2?
Я пытаюсь сделать это:
{% for movie in movie_list | sort(movie.rating) %}
но это не так...документация расплывчата...как вы это делаете в Jinja2?
3 ответа:
начиная с версии 2.6, встроенный фильтр сортировки Jinja2 позволяет указать атрибут для сортировки по:
{% for movie in movie_list|sort(attribute='rating') %}
обычно мы сортируем список, прежде чем дать его Jinja2. Нет никакого способа, чтобы указать ключ в .
тем не менее, вы всегда можете попробовать
{% for movie in movie_list|sort %}
. Вот такой синтаксис. Вы не можете предоставить какую-либо ключевую информацию для сортировки.вы также можете попробовать и написать собственный фильтр для этого. Кажется глупым, когда вы можете сортировать, прежде чем давать данные Jinja2.
если
movie_list
- список объектов, то вы можете определить различные сравнения методы (__lt__
,__gt__
и т. д.) для класса этих объектов.если
movie_list
- это список кортежей или списков, рейтинг должен быть первым. Или вам придется сделать сортировку за пределами Jinja2.если
movie_list
список словарей, то вы можете использоватьdictsort
, который принимает ключевую спецификацию для сортировки. Прочтите это: http://jinja.pocoo.org/2/documentation/templates#dictsort для примера.