私はこれをしようとしています:
{% for movie in movie_list | sort(movie.rating) %}
しかし、それは正しくありません...ドキュメントはあいまいです...どのようにJinja2でこれを行いますか?
バージョン2.6以降、Jinja2の組み込みソートフィルターを使用して、ソートする属性を指定できます。
{% for movie in movie_list|sort(attribute='rating') %}
昇順で並べ替える場合
{% for movie in movie_list|sort(attribute='rating') %}
降順で並べ替える場合
{% for movie in movie_list|sort(attribute='rating', reverse = True) %}
通常、Jinja2に渡す前にリストを並べ替えます。 Jinjaのsort
フィルターにキーを指定する方法はありません。
ただし、いつでも試すことができます{% 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 例.