13

我试图显示divs 取决于是否已创建数据库条目:

<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 1它会显示12如果我有一个标题div 12它会显示1, 2, and 3

我真的很困惑,因为我对 Jinja2 真的很陌生。我不确定这是否是我在 html 中的语法定位,或者语法是否错误,或者您是否无法检查两个变量......任何帮助将不胜感激。

4

1 回答 1

39

与 Python 中一样0None[]{}""为 False。除此之外的任何事情都是真实的。

“Jinja 中的 if 语句可以与 Python 中的 if 语句相媲美。以最简单的形式,您可以使用它来测试变量是否已定义,不为空或不为假:”

{% if post and post.wrk_1_title %}

{% endif %}

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

于 2012-09-07T03:16:00.997 回答