मैं चर एक पाश के भीतर पाश बाहर घोषित की मूल्य में परिवर्तन करना चाहते अंदर एक चर का मान बदलें। लेकिन हमेशा बदलते हुए, यह लूप के बाहर प्रारंभिक मान रखता है।Jinja2: एक पाश
{% set foo = False %}
{% for item in items %}
{% set foo = True %}
{% if foo %} Ok(1)! {% endif %}
{% endfor %}
{% if foo %} Ok(2)! {% endif %}
यह renders:
Ok(1)!
तो केवल (बुरा) समाधान पाया है अब तक यह था:
{% set foo = [] %}
{% for item in items %}
{% if foo.append(True) %} {% endif %}
{% if foo %} Ok(1)! {% endif %}
{% endfor %}
{% if foo %} Ok(2)! {% endif %}
यह renders:
Ok(1)!
Ok(2)!
लेकिन, यह बहुत बदसूरत है! क्या एक और अधिक सुरुचिपूर्ण समाधान है?
मुझे नहीं लगता कि किसी अन्य तरीके से है। शायद आप कोड को पुन: व्यवस्थित कर सकते हैं ताकि आपको चर सेट करने की आवश्यकता न हो। प्रश्न के लिए –
+1, क्योंकि यह मेरे लिए उत्तर बन गया :) –
@ शंकर कैबस: महान सवाल। यह शायद 'जिंजा Annoyances' – dreftymac