已有:
<div class="item-inner"> <div class="item-title label">是否公开</div> <div class="item-text">公开</div> </div> |
希望根据变量:
curEvent.is_public
去输出:
公开
不公开
模板设计者文档 — Jinja2 2.7 documentation
Template Designer Documentation — Jinja2 Documentation (2.8-dev)
python – Jinja2 template not rendering if-elif-else statement properly – Stack Overflow
jinja template if condition
python – Jinja2 if statement in vs equals on dict – Stack Overflow
python – jinja2 – how to put a block in an if statement? – Stack Overflow
{% if curEvent.is_public %} <div class="item-text">公开</div> {% else %} <div class="item-text">不公开</div> {% endif %} |
看看效果。
先去试试:
<div class="item-text"> {% if curEvent.is_public %} 公开 {% else %} 不公开 {% endif %} </div> |
是可以的:
另外去试了试:
<div class="item-title label">是否公开</div> {% if curEvent.is_public %} {% else %}不{% endif %} 公开 </div> |
虽然逻辑上工作,但是实际上看起来很难看:
->然后后发现是自己不小心漏掉了:
<div class="item-text">
才导致显示的问题的。。。
[总结]
Jinja中,if else根据条件判断去输出不同内容,可以有三种方式:
<div class="item-text"> {% if curEvent.is_public %}{% else %}不{% endif %}公开 </div> |
或:
<div class="item-text"> {% if curEvent.is_public %} 公开 {% else %} 不公开 {% endif %} </div> |
或:
{% if curEvent.is_public %} <div class="item-text">公开</div> {% else %} <div class="item-text">不公开</div> {% endif %} |
最后暂时用第二种:
<div class="item-inner"> <div class="item-title label">是否公开</div> <div class="item-text"> {% if curEvent.is_public %} 公开 {% else %} 不公开 {% endif %} </div> </div> |
好处是:万一以后需要改不同条件的内容,方便去改。