13

divデータベースエントリが作成されたかどうかに依存する sを表示しようとしています:

<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 2div1div2

現在、この種の作品は、表示しdivたいものを示していますが、何らかの理由で次のものも表示されます。タイトルがある場合div 11とが表示2され、タイトルがある場合はdiv 12表示されます1, 2, and 3

私はJinja2に本当に慣れていないので、本当に混乱しています。それがhtmlでの構文の私の位置付けなのか、構文が間違っているのか、2つの変数をチェックできないのかどうかはわかりません...どんな助けもいただければ幸いです。

4

1 に答える 1

39

Python と同様に、、、、および0NoneFalseです。それ以外は、True です。[]{}""

「Jinja の if ステートメントは、Python の if ステートメントと同等です。最も単純な形式では、それを使用して、変数が定義されているかどうか、空でないか false でないかをテストできます。」

{% if post and post.wrk_1_title %}

{% endif %}

ドキュメント: http://jinja.pocoo.org/docs/templates/#if

于 2012-09-07T03:16:00.997 に答える