2017-03-16 66 views
1

對於下面的第一行,jinja2模板呈現是否存在x。但是,在第二行中,僅當x是現有列表時,模板纔會呈現。如果不是我得到一個錯誤(假設是否存在x它總是與至少一個項目的列表):jinja2:列表中的第一項是否存在列表

<p>x: {{ x }}</p> 

<p>x[0]: {{ x[0] }}</p> 
UndefinedError: 'x' is undefined 

是否有更好的方法來檢查,如果一個變量存在,並得到其第一個項目比我這裏(我噸具有更長的名字在我的模板x實例,並與if語句每次我寧願不把它包裝):

{% if x %} 
    <p>x[0]: {{ x[0] }}</p> 
{% endif % 

回答

1

神社支持嵌入式if else報表,而不像Python中也允許省略else

{{ x[0] if x }} 
0

也許嘗試返回一個列表的列表並迭代它,這樣你只能寫一次「變量檢查」。

這些方針的東西:

{% for x in list %} 
    {% if x %} 
     <p>x[0]: {{ x[0] }}</p> 
    {% endif %} 
{% endfor %}