在神贾状态下我该怎么做
我的目标是在循环的每个索引中检查value_index的值,如果下一个索引值相同,则不会打印。直到下一个值不等于value_index,它才会打印出来。
样本数据:
users = [ ('username1','password1'),('username2','password1') ]
contacts = [('0909','0909','0011','0011','0011','0908')]
到目前为止,我已经有了这段代码,但是它没有按我预期的那样工作
{% for items in users %}
{% set i = loop %}
{% set value_index = '' %}
{% print(items[0]) %}
{% for item in contacts %}
{% if value_index != item %}
{% print(item) %}
{% endif %}
{% set value_index = item %}
{% endfor %}
{% endfor %}
我的预期输出是
username1
0909
0011
0908
username2
0909
0011
0908
答案 0 :(得分:1)
我想您正在寻找loop.changed(*val)
方法:https://jinja.palletsprojects.com/en/2.10.x/templates/#for(见表)。因此,您只需要像这样在if
标记中调用方法:
{% for items in users %}
{% print(items[0]) %}
{% for item in contacts %}
{% if loop.changed(item) %}
{{ item }}
{% endif %}
{% endfor %}
{% endfor %}
如果item
的值实际上与上一次调用loop.changed
有所不同,则调用的结果为true
。 false
否则。