2017-09-16 101 views
0

我試圖改變循環內的變量的值,這樣我就可以爲第一次迭代做一些事情,然後爲所有下一次迭代做其他事情。jinja2/flask更改變量值

{% set vars = {'foo': True} %} 
{% for line in project[2].split('[newline]') %} 
{% if vars.foo %} 
    its true! 
{% else %} 
    its false! 
{% endif %} 
{% vars.update({'foo': False}) %} 
{% endfor %} 

輸出看起來像'它的真實!這是真的!這是真的!它是真的!',所以Jinja肯定不會得到這個變量已經被改變的事實。

我也嘗試將{% vars.update({'foo': False}) %}換成{% vars.foo == False %},但它沒有奏效。

感謝您的幫助

回答

3

我固定我的問題!

不需要使用變量,Jinja2有一些東西可以計算循環中的迭代次數。

所以,我只是改變了我這樣的代碼:

{% for line in project[2].split('[newline]') %} 
    {% if loop.index == 1 %} 
     its true! 
    {% else %} 
     its false! 
    {% endif %} 
    {% endfor %}