मैं एक Django टेम्पलेट के भीतर एक संग्रह के आकार की जांच कैसे कर सकता हूं?


147

मैं अपने Django टेम्पलेट में एक सूची है। मैं केवल कुछ करना चाहता हूं यदि सूची का आकार शून्य से अधिक है।

मैंने कोशिश की है myList|lengthऔर myList|length_isवे सफल नहीं हुए हैं।

मैंने सब खोज लिया है और कोई उदाहरण नहीं देख रहा हूँ। मैं इसकी जांच कैसे कर सकता हूं?

जवाबों:


279

देखें https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if उनके उदाहरण पुन: पेश करने के लिए सिर्फ उपयोग करते हैं,:

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% else %}
    No athletes.
{% endif %}

| लंबाई मैं हमेशा फ्लास्क में जिंजा टेम्प्लेटिंग और डीजेंगो के साथ भ्रमित होता हूं। जानकारी के लिए धन्यवाद। वास्तव में सहायक है।
Doogle

7
lengthफिल्टर भी सशर्त ब्लॉक में काम करने लगता है। जैसे{% if athlete_list|length > 1 %}...{% endif %}
Thismatters

93

यदि आप एक हालिया Django का उपयोग कर रहे हैं, तो चैंजिस्ट 9530 ने एक {% खाली%} ब्लॉक पेश किया, जिससे आप लिख सकते हैं

{% for athlete in athlete_list %}
  ...
{% empty %}
  No athletes
{% endfor %}

उपयोगी जब आप जो कुछ करना चाहते हैं वह एक गैर-खाली सूची पर पुनरावृत्ति करना है।



20

एक सूची को माना जाता है कि Falseयदि उसके पास कोई तत्व नहीं है, तो आप ऐसा कुछ कर सकते हैं:

{% if mylist %}
    <p>I have a list!</p>
{% else %}
    <p>I don't have a list!</p>
{% endif %}

13

यदि आपने myList की कोशिश की। लंबाई और myList | length_is और इसके वांछित परिणाम नहीं मिल रहे हैं, तो आपको उपयोग करना चाहिए myList.count


6

आप के साथ कोशिश कर सकते हैं:

{% if theList.object_list.count > 0 %}
    blah, blah...
{% else %}
    blah, blah....
{% endif %} 


1

मुझे यह तय करने के लिए संग्रह लंबाई की आवश्यकता है कि क्या मुझे तालिका प्रदान करनी चाहिए <thead></thead>

लेकिन पता नहीं क्यों @Dangango 2.1.7 चुना हुआ उत्तर मेरे ( forloopबाद में ) खाली (विफल) हो जाएगा ।

मैं {% if forloop.first %} {% endif %}दूर करने के लिए उपयोग करने के लिए मिला :

<table>
    {% for record in service_list %}
        {% if forloop.first %}
            <thead>
            <tr>
                <th>日期</th>
            </tr>
            </thead>
        {% endif %}
        <tbody>
        <tr>
            <td>{{ record.date }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.