JINJA2

2013-04-08 5 views
13

में समेकित सूचियां मैं जिन्जा 2 में दो सूची चर कैसे जोड़ सकता हूं?JINJA2

ईजी।

GRP1 = [1, 2, 3] 
GRP2 = [4, 5, 6] 

{# This works fine: #} 
{% for M in GRP1 %} 
    Value is {{M}} 
{% endfor %} 


{# But this does not: #} 
{% for M in GRP1 + GRP2 %} 
    Value is {{M}} 
{% endfor %} 

तो, मैं (जैसे आप अजगर में होगा) का उपयोग कर + दो सूचियों को श्रेणीबद्ध करने की कोशिश की है, लेकिन यह पता चला है कि वे सूचियों नहीं हैं, लेकिन अजगर xrange वस्तुओं:

jijna2 error: unsupported operand type(s) for +: 'xrange' and 'xrange' 

है मेरे लिए जीआरपी 1 और जीआरपी 2 के लेंस के लिए समानता के लिए पुन: प्रयास करने का एक तरीका है?

+0

श्रृंखलाबद्ध 'GRP1 + GRP2' के माध्यम से अब उपलब्ध है। मेरा जिन्जा 2 संस्करण 'v.2.9.5' – Hsiao

उत्तर

14

AFAIK आप देशी Jinja2 templating का उपयोग करके ऐसा नहीं कर सकते हैं। आप जैसे बनाने के लिए एक नया iterable संयुक्त और आपके खाके में गुजर कि बेहतर कर रहे हैं,:

from itertools import chain 

x = xrange(3) 
y = xrange(3, 7) 
z = chain(x, y) # pass this to your template 
for i in z: 
    print i 

टिप्पणियों के अनुसार, आप स्पष्ट रूप से iterables सूचियों में बदल सकते हैं, और श्रेणीबद्ध उन:

{% for M in GRP1|list + GRP2|list %} 
+0

उत्तर के लिए धन्यवाद है। समस्या यह है कि मैं इसे सीधे पायथन में उपयोग नहीं कर रहा हूं - मैं इसे एक ऐसे अनुप्रयोग में उपयोग कर रहा हूं जो पाठ फ़ाइल में पढ़ता है और दृश्यों के पीछे जिंज प्रसंस्करण करता है, यानी मैं वास्तव में पायथन कोड को संशोधित नहीं कर सकता। – ccbunney

+6

@ कर्नोबुननी उस मामले में, या तो 2 लूप - या देखें कि '{जीआरपी 1 में एम के लिए {% + सूची + जीआरपी 2 | सूची%} 'काम करता है ... –

+1

शानदार! यह एक इलाज करता है - धन्यवाद! – ccbunney