Scope 未定义jinja2呈现报告变量

Scope 未定义jinja2呈现报告变量,scope,jinja2,Scope,Jinja2,我有一个以dict为元素的列表。渲染失败。有人能帮忙吗。非常感谢 {如果i%'中的'name'为我的列表中的i%} {%set v=i['name']%} {%else%} {%set v='未找到'%} {%endfor%} {%set mydict={'name':v}%}这背后的原因是jinja2作用域。下面是解决这个问题的方法 {%set vlist=[]%} {%set mylist=[{'name':'myvalue'}]% {如果i%'中的'name'为mylist中的i%}

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

{如果i%'中的'name'为我的列表中的i%}
{%set v=i['name']%}
{%else%}
{%set v='未找到'%}
{%endfor%}

{%set mydict={'name':v}%}
这背后的原因是jinja2作用域。下面是解决这个问题的方法


{%set vlist=[]%}
{%set mylist=[{'name':'myvalue'}]%
{如果i%'中的'name'为mylist中的i%}
{%do vlist.append(i['name'])%}
{%break%}
{%else%}
{%do vlist.append('notfoundinlist')%}
{%endfor%}

您应该尝试为和其他区块定义
v
外部
。感谢您首先回复。然而,在外部定义v是行不通的。下面是更新后的代码段,v被分配到“预定义”,这是不期望的。