मैं यह करने की कोशिश कर रहा हूं:
{% for movie in movie_list | sort(movie.rating) %}
लेकिन यह सही नहीं है ... प्रलेखन अस्पष्ट है ... आप इसे जिन्जा 2 में कैसे करते हैं?
मैं यह करने की कोशिश कर रहा हूं:
{% for movie in movie_list | sort(movie.rating) %}
लेकिन यह सही नहीं है ... प्रलेखन अस्पष्ट है ... आप इसे जिन्जा 2 में कैसे करते हैं?
जवाबों:
संस्करण 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) %}
आमतौर पर हम जिन्जा 2 को देने से पहले सूची को क्रमबद्ध करते हैं। जिनजा के sort
फिल्टर में एक कुंजी निर्दिष्ट करने का कोई तरीका नहीं है ।
हालांकि, आप हमेशा कोशिश कर सकते हैं {% for movie in movie_list|sort %}
। वह वाक्य रचना है। आपको छंटाई के लिए किसी भी प्रकार की महत्वपूर्ण जानकारी प्रदान करने की आवश्यकता नहीं है।
आप इसके लिए एक कस्टम फ़िल्टर भी आज़मा सकते हैं और लिख सकते हैं। जब आप Jinja2 को डेटा देने से पहले सॉर्ट कर सकते हैं तो मूर्खतापूर्ण लगता है।
यदि movie_list
वस्तुओं की एक सूची है, तो आप विभिन्न तुलना विधियों (परिभाषित कर सकते हैं __lt__
, __gt__
उन वस्तुओं के वर्ग के लिए, आदि)।
यदि movie_list
टुपल्स या सूचियों की सूची है, तो रेटिंग पहले होनी चाहिए। या आपको जिन्जा 2 के बाहर छँटाई करनी होगी।
यदि movie_list
शब्दकोशों की एक सूची है, तो आप उपयोग कर सकते हैं dictsort
, जो छँटाई के लिए एक मुख्य विनिर्देश को स्वीकार करता है। इसे पढ़ें: http://jinja.pocoo.org/2/documentation/templates#dictsort एक उदाहरण के लिए।
dict.items()
) से बनी है तो सूचकांक को निर्दिष्ट करना संभव है :sort(attribut='1')