jinja2渲染报告变量未定义

时间:2016-03-03 11:13:06

标签: scope jinja2

我有一个以dict为元素的列表。渲染失败了。有人可以在这帮忙。非常感谢。



{% for i in mylist if 'name' in i %}
  {% set v = i['name'] %}
{% else %}
  {% set v = 'notfound' %}
{% endfor %}
{% set mydict = { 'name' : v } %}




它总是报告v未定义。真的很混乱。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

背后的原因是jinja2范围。以下是解决问题的方法。

{% set vlist = [] %} {% set mylist = [ {'name':'myvalue'} ] %} {% for i in mylist if 'name' in i %} {% do vlist.append(i['name']) %} {% break %} {% else %} {% do vlist.append('notfoundinlist') %} {% endfor %}