私はこれをやろうとしています:
{% for movie in movie_list | sort(movie.rating) %}
しかし、それは正しくありません...ドキュメントはあいまいです... Jinja2でこれをどのように行いますか?
回答:
バージョン2.6以降、Jinja2の組み込みの並べ替えフィルターを使用すると、並べ替える属性を指定できます。
{% for movie in movie_list|sort(attribute='rating') %}
list_of_tuples|sort(attribute='0')
reverse=True
。この場合は、オプションを使用するだけです。
昇順で並べ替える場合
{% 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をお読みください。
dict.items()
):sort(attribut='1')