2012-01-11 9 views
11

मैं अपने जिंजा टेम्पलेटजिंजा के पाश चर उपलब्ध नहीं है शामिल हैं-डी टेम्पलेट्स में

{% for post in posts %} 
    {% include ["posts/" + post.type + ".html", "posts/default.html"] %} 
{% endfor %} 

में से एक में जिसके बाद posts संग्रह के अंदर प्रत्येक post प्रस्तुत करना माना जाता है, .type पर निर्भर करता है के लिए इसी तरह कोड है पद के मेरे पास प्रत्येक post.type के लिए एक अलग टेम्पलेट सेटअप है। और उनके लिए मेरे पास टेम्पलेट नहीं है, यह default पोस्ट टेम्पलेट पर वापस आ जाता है।

अब, मैं चाहता हूं कि पोस्ट टेम्पलेट्स के अंदर पोस्ट की अनुक्रमणिका नीचे से प्रदर्शित हो, जो loop.revindex द्वारा प्रदान की जाती है। लेकिन किसी कारण से, यदि मैं पोस्ट टेम्पलेट के अंदर loop.revindex का उपयोग करता हूं, तो मुझे UndefinedError: 'loop' is undefined कहने में त्रुटि मिलती है।

तो loopinclude डी टेम्पलेट्स में उपलब्ध नहीं है? क्या यह डिजाइन द्वारा है? क्या मैं कुछ गलत कर रहा हूं कि मैंने अपने टेम्पलेट्स को कैसे उपलब्ध नहीं किया है?

संपादित ठीक है, मैं एक वैकल्पिक हल के साथ में पाश के लिए आया था, इससे पहले कि मैं अपने टेम्पलेट में शामिल हैं, मैं

{% set post_index = loop.revindex %} 

करते हैं और पोस्ट टेम्पलेट के अंदर post_index का उपयोग करें। आदर्श नहीं है, लेकिन एकमात्र रास्ता लगता है। मैं अभी भी अपने समाधान जानना चाहता हूं।

संपादित 2 एक दूसरी बात, मैं include घ टेम्पलेट के अंदर post चर उपयोग करने में सक्षम हूँ, लेकिन नहीं loop चर।

उत्तर

5

यदि {% with %} कथन के साथ संभव हो सकता है।

इस प्रयास करें: इसके बजाय शामिल टेम्पलेट में loop.revindex का उपयोग करने का

{% with %} 
    {% set loop_revindex = loop.revindex %} 
    {% include ... %} 
{% endwith %} 

, loop_revindex का उपयोग करें।

+0

हाँ, इसे किसी अन्य स्थानीय चर पर सेट करना समाधान है, मुझे प्रश्न पोस्ट करने के तुरंत बाद पता चला। प्रश्न में मेरा संपादन देखें। हालांकि 'के साथ' की आवश्यकता नहीं थी। 'साथ' भी नहीं पता था, टिप के लिए धन्यवाद :) –

1

एक अन्य विकल्प के लिए loop

{% for post in posts %} 
    {% set post_loop = loop %} 
    {% include ["posts/" + post.type + ".html", "posts/default.html"] %} 
{% endfor %} 

यह आपको loop रों गुण के सभी तक पहुँच देता है एक स्थानीय चर सेट करके शामिल टेम्पलेट में पूरे loop चर पारित करने के लिए है, और, मेरे लिए, यह बनाता है शामिल टेम्पलेट में अधिक स्पष्ट क्या चर है।

संबंधित मुद्दे