मैं कुछ ऐसा करना चाहूंगा:
वेरिएबल पी टेस्टोस्टेरोन से है जो एक सूची ['ए', 'बी', 'सी', 'डी'] है
{% for i in p %}
{{variable++}}
{{variable}}
परिणाम आउटपुट है:
1 2 3 4
मैं कुछ ऐसा करना चाहूंगा:
वेरिएबल पी टेस्टोस्टेरोन से है जो एक सूची ['ए', 'बी', 'सी', 'डी'] है
{% for i in p %}
{{variable++}}
{{variable}}
परिणाम आउटपुट है:
1 2 3 4
जवाबों:
आप उपयोग कर सकते हैं loop.index
:
{% for i in p %}
{{ loop.index }}
{% endfor %}
टेम्प्लेट डिज़ाइनर प्रलेखन की जाँच करें ।
हाल ही के संस्करणों में, नियमों के कारण, निम्नलिखित काम नहीं करेंगे :
{% set count = 1 %}
{% for i in p %}
{{ count }}
{% set count = count + 1 %}
{% endfor %}
2.10 के बाद, गुंजाइश समस्या को हल करने के लिए, आप कुछ इस तरह से कर सकते हैं:
{% set count = namespace(value=0) %}
{% for i in p %}
{{ count.value }}
{% set count.value = count.value + 1 %}
{% endfor %}
जैसा कि जेरोइन कहते हैं कि डगमगाते मुद्दे हैं: यदि आप लूप के बाहर 'गिनती' सेट करते हैं, तो आप इसे लूप के अंदर संशोधित नहीं कर सकते।
आप 'काउंट' के लिए स्केलर के बजाय किसी ऑब्जेक्ट का उपयोग करके इस व्यवहार को हरा सकते हैं:
{% set count = [1] %}
अब आप फ़ॉरलूप के अंदर गिनती में हेरफेर कर सकते हैं या एक% में% भी शामिल कर सकते हैं। यहां बताया गया है कि मैं किस तरह से गिनती बढ़ाता हूं (हां, यह हास्यास्पद है लेकिन ओह अच्छी तरह से):
{% if count.append(count.pop() + 1) %}{% endif %} {# increment count by 1 #}
{% set count = [] %}
करने के लिए, प्रत्येक लूप में सूची में एक आइटम जोड़ें {% set __ = index.append(1) %}
और इंडेक्स प्रदर्शित करने के लिए लंबाई का उपयोग करें index|length
।
{% set count = [ ] %}
, एक खाली सूची को इनिशियलाइज़ करने के लिए, प्रत्येक लूप में सूची में एक आइटम जोड़ें {% set __ = count.append(1) %}
और गिनती प्रदर्शित करने के लिए लंबाई का उपयोग करेंcount|length
यहाँ मेरा समाधान है:
सभी काउंटरों को एक शब्दकोष में रखें:
{% set counter = {
'counter1': 0,
'counter2': 0,
'etc': 0,
} %}
उन्हें आसानी से बढ़ाने के लिए एक मैक्रो को परिभाषित करें:
{% macro increment(dct, key, inc=1)%}
{% if dct.update({key: dct[key] + inc}) %} {% endif %}
{% endmacro %}
अब, जब भी आप 'काउंटर 1' काउंटर को बढ़ाना चाहते हैं, बस करें:
{{ increment(counter, 'counter1') }}
मैं इस व्यवहार से भी जूझ रहा था। मैं काउंटर के आधार पर जीजा में दिव्यांग वर्ग को बदलना चाहता था। मुझे आश्चर्य हुआ कि पायथोनिक तरीके से काम नहीं किया गया। निम्नलिखित कोड प्रत्येक पुनरावृत्ति पर मेरे काउंटर को रीसेट कर रहा था, इसलिए मेरे पास केवल लाल वर्ग था।
{% if sloupec3: %}
{% set counter = 1 %}
{% for row in sloupec3: %}
{% if counter == 3 %}
{% set counter = 1 %}
{% endif %}
{% if counter == 1: %}
<div class="red"> some red div </div>
{% endif %}
{% if counter == 2: %}
<div class="gray"> some gray div </div>
{% endif %}
{% set counter = counter + 1 %}
{% endfor %}
{% endif %}
मैंने इस तरह लूप का इस्तेमाल किया। यह काम करता है:
{% if sloupec3: %}
{% for row in sloupec3: %}
{% if loop.index % 2 == 1: %}
<div class="red"> some red div </div>
{% endif %}
{% if loop.index % 2 == 0: %}
<div class="gray"> some gray div </div>
{% endif %}
{% endfor %}
{% endif %}
अगर किसी को लूप के अंदर एक मूल्य जोड़ना है तो आप इसके 100% काम कर सकते हैं
{% set ftotal= {'total': 0} %}
{%- for pe in payment_entry -%}
{% if ftotal.update({'total': ftotal.total + 5}) %}{% endif %}
{%- endfor -%}
{{ftotal.total}}
आउटपुट = 5
Django के ऐसा करने के तरीके की खोज में आया और इस पोस्ट को पाया। हो सकता है कि किसी और को यहां आने वाले django समाधान की आवश्यकता हो।
{% for item in item_list %}
{{ forloop.counter }} {# starting index 1 #}
{{ forloop.counter0 }} {# starting index 0 #}
{# do your stuff #}
{% endfor %}
यहां पढ़ें: https://docs.djangoproject.com/en/1.11/ref/templates/builtins/