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

출력이 'true'처럼 보입니다. 그것의 진실한! 그것의 진실한! 그 진실한! ', 그래서 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 %}