私はこれをやろうとしています:
{% for movie in movie_list | sort(movie.rating) %}
しかし、それは正しくありません...ドキュメントがあいまいです...Jinja2でこれを行うにはどうすればよいですか?
バージョン 2.6 の時点で、Jinja2 の組み込みソート フィルタを使用すると、ソートする属性を指定できます。
{% for movie in movie_list|sort(attribute='rating') %}
通常、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を読んでください。