データベースエントリが作成されたかどうかに応じて、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 1
とtitle 2
の両方がデータベースにある場合は、div1
とdiv2
などを表示します。
現在、この種の作品はdiv
を表示したいので、何らかの理由で次の作品も表示しています。 div 1
のタイトルがある場合は1
と2
が表示され、div 1
と2
のタイトルがある場合は1, 2, and 3
が表示されます
私はJinja2を初めて使うので本当に混乱しています。それがhtmlでの構文の位置付けなのか、構文が間違っているのか、または2つの変数をチェックできないのか...わかりません。
Pythonと同様に、0
、None
、[]
、{}
および""
はFalseです。それ以外は真実です。
「JinjaのifステートメントはPythonのifステートメントに相当します。最も単純な形式では、これを使用して、変数が定義されているか、空でないか、偽でないかをテストできます。」
{% if post and post.wrk_1_title %}
{% endif %}