2017-09-16 85 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 %}