2016-03-03 121 views
0

我有一個列表,其字典爲元素。渲染失敗。有人可以幫助這裏。非常感謝。jinja2渲染報告變量未定義

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

它總是報告說,V是沒有定義。真令人困惑。

感謝您的幫助。

+0

你應該嘗試** **定義'v'外'for'和'else'集團。 – purplepsycho

+0

謝謝你先回復。但是,在外界定義v不起作用。下面是更新的代碼片斷,v被分配給'預定義',這不是預期的。 – Zhenhua

回答

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 %}