Я пытаюсь сделать это:
{% for movie in movie_list | sort(movie.rating) %}
Но это не правильно..., что документация неопределенна... как дела это в Jinja2?
Обычно мы сортируем список перед тем, как отдать его 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.