Ich versuche das zu tun:
{% for movie in movie_list | sort(movie.rating) %}
Aber das ist nicht richtig ... die Dokumentation ist vage ... wie macht man das in Jinja2?
Ab Version 2.6 können Sie mit dem integrierten Sortierfilter von Jinja2 ein Attribut angeben, nach dem sortiert werden soll:
{% for movie in movie_list|sort(attribute='rating') %}
list_of_tuples|sort(attribute='0')
reverse=True
.Wenn Sie in aufsteigender Reihenfolge sortieren möchten
Wenn Sie in absteigender Reihenfolge sortieren möchten
quelle
Normalerweise sortieren wir die Liste, bevor wir sie Jinja2 geben. Es gibt keine Möglichkeit, einen Schlüssel in Jinjas
sort
Filter anzugeben .Sie können es jedoch jederzeit versuchen
{% for movie in movie_list|sort %}
. Das ist die Syntax. Sie können keine Schlüsselinformationen für die Sortierung angeben.Sie können auch versuchen, einen benutzerdefinierten Filter dafür zu schreiben. Scheint albern, wenn Sie sortieren können, bevor Sie die Daten an Jinja2 weitergeben.
Wenn
movie_list
eine Liste von Objekten ist, dann können Sie die verschiedenen Vergleichsmethoden (definieren__lt__
,__gt__
usw.) für die Klasse dieser Objekte.Wenn
movie_list
es sich um eine Liste von Tupeln oder Listen handelt, muss die Bewertung an erster Stelle stehen. Oder Sie müssen die Sortierung außerhalb von Jinja2 durchführen.Wenn
movie_list
es sich um eine Liste von Wörterbüchern handelt, können Sie diese verwendendictsort
, die eine Schlüsselspezifikation für die Sortierung akzeptiert. Lesen Sie dies als Beispiel : http://jinja.pocoo.org/2/documentation/templates#dictsort .quelle
dict.items()
):sort(attribut='1')