Как вы сортируете список в Jinja2?

Я пытаюсь это сделать:

{% for movie in movie_list | sort(movie.rating) %} 

Но это неправильно … документация неясна … как вы это делаете в Jinja2?

3 Solutions collect form web for “Как вы сортируете список в Jinja2?”

Начиная с версии 2.6, встроенный фильтр сортировки Jinja2 позволяет вам указать атрибут для сортировки по:

 {% for movie in movie_list|sort(attribute='rating') %} 

См. http://jinja.pocoo.org/docs/templates/#sort

Обычно мы сортируем список, прежде чем передавать его Jinja2. Невозможно указать ключ в sort фильтре Jinja.

Тем не менее, вы всегда можете попробовать {% 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 для примера.

Если вы хотите отсортировать в порядке возрастания

 {% for movie in movie_list|sort(attribute='rating') %} 

Если вы хотите отсортировать по убыванию

 {% for movie in movie_list|sort(attribute='rating', reverse = True) %} 
Python - лучший язык программирования в мире.