एक jinja2 टेम्पलेट में एक सूची की लंबाई प्राप्त करें


315

मैं jinja2 टेम्पलेट की सूची में तत्वों की संख्या कैसे प्राप्त करूं?

उदाहरण के लिए, पायथन में:

print(template.render(products=[???]))

और jinja2 में

<span>You have {{what goes here?}} products</span>

जवाबों:


532
<span>You have {{products|length}} products</span>

आप इस वाक्यविन्यास का उपयोग भावों में भी कर सकते हैं

{% if products|length > 1 %}

jinja2 के बिल्टिन फ़िल्टर यहाँ प्रलेखित हैं ; और विशेष रूप से, जैसा कि आप पहले ही पा चुके हैं, length(और इसका पर्यायवाची शब्द count):

एक अनुक्रम या मानचित्रण की वस्तुओं की संख्या लौटाएं।

इसलिए, जैसा कि आपने पाया है, {{products|count}}(या समकक्ष {{products|length}}) आपके टेम्पलेट में "उत्पादों की संख्या" ("सूची की लंबाई") देगा


क्या हम अपरिभाषित के लिए भी जाँच कर सकते हैं? मुझे {% का उपयोग करना है अगर उत्पाद कोई नहीं है ...%} जो काफी थका देने वाला है
Nam G VU

@wvxvw यह काम करता है: {% set item_count = items | length %}जब तक itemsएक सूची,
तानाशाही

7

एलेक्स की टिप्पणी अच्छी लग रही है, लेकिन मैं अभी भी सीमा का उपयोग करने में उलझन में था। सीमा के भीतर लंबाई का उपयोग करते हुए शर्त पर काम करते समय मेरे लिए निम्नलिखित कार्य किया गया।

{% for i in range(0,(nums['list_users_response']['list_users_result']['users'])| length) %}
<li>    {{ nums['list_users_response']['list_users_result']['users'][i]['user_name'] }} </li>
{% endfor %}

2

मैंने किसी की लंबाई के साथ एक समस्या का अनुभव किया है, जो आंतरिक सर्वर त्रुटि की ओर जाता है: TypeError: प्रकार की वस्तु 'noneType' में कोई लेन () नहीं है

मेरा वर्कअराउंड केवल 0 प्रदर्शित कर रहा है यदि ऑब्जेक्ट कोई नहीं है और अन्य प्रकार की लंबाई की गणना करें, जैसे मेरे मामले में सूची:

{{'0' if linked_contacts == None else linked_contacts|length}}

आप किसी के लिए परीक्षण करने के लिए कोई भी बिल्ड-इन फ़ंक्शन का उपयोग कर सकते हैं । यहां और देखें : https://jinja.palletsprojects.com/en/2.10.x/templates/#none । उदाहरण इस धागे पर है: /programming/19614027/jinja2-template-variable-if-none-object-set-a-default-value
Wojciele Jakubas
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.