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

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

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

Но это не правильно..., что документация неопределенна... как дела это в Jinja2?

78
задан Reinstate Monica 30 April 2010 в 18:27
поделиться

1 ответ

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

Однако, вы всегда можете попробовать {% для фильма в фильме_list|sort %}. Таков синтаксис. Вы не можете предоставить никакой ключевой информации для сортировки.

Вы также можете попробовать написать пользовательский фильтр для этого. Глупо выглядит, когда вы можете сортировать данные перед передачей их Jinja2.

Если movie_list - это список объектов, то вы можете определить различные методы сравнения (__lt__, __gt__ и т.д.) для класса этих объектов.

Если movie_list - это список кортежей или списков, то рейтинг должен быть первым. Или вам придется делать сортировку вне Jinja2.

Если movie_list - это список словарей, то вы можете использовать dictsort, который действительно принимает спецификацию ключа для сортировки. Прочтите это: http://jinja.pocoo.org/2/documentation/templates#dictsort for an example.

12
ответ дан 24 November 2019 в 10:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: