2012-09-04 95 views
8

我試圖表現出div的依附性上的數據庫條目是否已取得:如果變量,變量定義 - Jinja2的

<table class="info-table"> 
<tr><td> 
<div class="info-table_titlebox"> 
{% if post.wrk_1_title is defined %} 
    <div class="info-title_title"> 
    <h2>{{post.wrk_1_title}}</h2> 
    <h3>Facilitator: {{post.wrk_1_facilitator}}</h3> 
    <h4>Location: {{post.wrk_1_locate}}</h4> 
    <h4>Max participants: {{post.wrk_1_max}}</h4> 
    </div> 
    <div class="info-title_list"> 
     <ul> 
     <li>{{post.eventday}} - <b>Week {{post.eventweek}}</b></li> 
     <li class="info-title_listright">{{post.wrk_1_time}}</li> 
     </ul> 
    </div> 
    <p>{{post.wrk_1_description}}</p> 
{% endif %} 
</div> 
</td> 
<td> 
<div class="info-table_titlebox"> 
{% if post.wrk_1_title is defined and post.wrk_2_title is defined %} 
    <div class="info-title_title"> 
    <h2>{{post.wrk_2_title}}</h2> 
    <h3>Facilitator: {{post.wrk_2_facilitator}}</h3> 
    <h4>Location: {{post.wrk_2_locate}}</h4> 
    <h4>Max participants: {{post.wrk_2_max}}</h4> 
    </div> 
    <div class="info-title_list"> 
     <ul> 
     <li>{{post.eventday}} - <b>Week {{post.eventweek}}</b></li> 
     <li class="info-title_listright">{{post.wrk_2_time}}</li> 
     </ul> 
    </div> 
    <p>{{post.wrk_2_description}}</p> 
{% endif %} 
</div> 
</td> 

這是一個簡單的代碼片段 - 模式進行。基本上,如果標題是在數據庫中只顯示div1如果兩個title 1title 2在數據庫中顯示div1div2等。

目前這類作品,因爲它的顯示div我想說明,但由於某種原因,它顯示了下一個爲好。如果我有標題div 1它表明12,如果我有一個標題爲div 12它顯示1, 2, and 3

我,因爲我真正的新的Jinja2真的很困惑。我不確定它是否是我在html中定位的語法,或者如果語法錯誤,或者如果您無法檢查兩個變量......將不勝感激。

+0

你確定神社變量沒有在上下文中定義的?你可以通過分割{%如果post.wrk_1_title被定義,post.wrk_2_title被定義爲%}並且在兩個if中查找,並且在結果html中查找,你總是可以測試它。 – voscausa

+0

@vocausa我猜IM幾分不確定該怎麼定義的方式,我認爲當一個條目以數據庫,但沒有從表單提交補充說,這意味着,當該條目從數據庫中檢索它的「不確定」起初我以爲它會成爲「無」,但它似乎確實進入...可能是一個空字符串?所以通過檢查「定義」是否有條目將顯示這個div。 – Jesse

+0

定義了一個值爲None的變量。未定義意味着:該變量未知。 – voscausa

回答

27

與Python中一樣,0,None,[],{}""是假的。除此之外的任何東西都是真的。

「的,如果在神社語句相媲美的如果 聲明Python的最簡單的形式,你可以用它來測試一個變量是 定義,不爲空或不假:」

{% if post and post.wrk_1_title %} 

{% endif %} 

文檔:http://jinja.pocoo.org/docs/templates/#if

+0

只是爲了確認我理解你說定義的檢查測試,如果有一個變量神社上面的語句? – Jesse

+0

是的,但是應該定義'post'。如果你不知道是否定義了'post',你應該測試它:'post and post.wrk_1_title'。 –