105

私はこれをやろうとしています:

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

しかし、それは正しくありません...ドキュメントがあいまいです...Jinja2でこれを行うにはどうすればよいですか?

4

3 に答える 3

195

バージョン 2.6 の時点で、Jinja2 の組み込みソート フィルタを使用すると、ソートする属性を指定できます。

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

http://jinja.pocoo.org/docs/templates/#sortを参照

于 2011-03-30T17:55:47.543 に答える
15

通常、Jinja2 に渡す前にリストをソートします。sortJinja のフィルターでキーを指定する方法はありません。

ただし、いつでも試すことができます{% 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を読んでください。

于 2009-12-24T19:06:26.380 に答える