Saya mencoba melakukan ini:
{% for movie in movie_list | sort(movie.rating) %}
Tapi itu tidak benar ... dokumentasinya tidak jelas ... bagaimana Anda melakukan ini di Jinja2?
Mulai versi 2.6, filter sortir bawaan Jinja2 memungkinkan Anda menentukan atribut yang akan diurutkan berdasarkan:
{% for movie in movie_list|sort(attribute='rating') %}
list_of_tuples|sort(attribute='0')
reverse=True
.Jika Anda ingin mengurutkan dalam urutan menaik
{% for movie in movie_list|sort(attribute='rating') %}
Jika Anda ingin mengurutkan dalam urutan menurun
{% for movie in movie_list|sort(attribute='rating', reverse = True) %}
sumber
Biasanya kami mengurutkan daftar sebelum memberikannya ke Jinja2. Tidak ada cara untuk menentukan kunci dalam
sort
filter Jinja .Namun, Anda selalu bisa mencobanya
{% for movie in movie_list|sort %}
. Itu sintaksnya. Anda tidak boleh memberikan informasi kunci apa pun untuk penyortiran.Anda juga dapat mencoba dan menulis filter khusus untuk ini. Tampak konyol jika Anda bisa mengurutkan sebelum memberikan data ke Jinja2.
Jika
movie_list
adalah daftar objek, maka Anda dapat menentukan berbagai metode perbandingan (__lt__
,__gt__
, dll) untuk kelas objek tersebut.Jika
movie_list
merupakan daftar tupel atau daftar, peringkatnya harus pertama. Atau Anda harus melakukan penyortiran di luar Jinja2.Jika
movie_list
daftar kamus, maka Anda dapat menggunakandictsort
, yang menerima spesifikasi kunci untuk penyortiran. Baca ini: http://jinja.pocoo.org/2/documentation/templates#dictsort sebagai contoh.sumber
dict.items()
):sort(attribut='1')