jinja2 渲染报告变量未定义

jinja2 rendering report variable not defined

我有一个以字典作为元素的列表。渲染失败。有人可以帮忙吗。非常感谢。

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

总是报v未定义。真是一头雾水。

感谢您的帮助。

这背后的原因是 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 %}