if标签用于构造条件分支,其基本结构如下。
{% if var1 %}
……
{% elif var2 %}
……
{% else %}
……
{% endif %}
elif和else块可以省略,elif块可以有多个。
Django按先后顺序依次计算if和elif标签的变量,如果变量为“真”(即变量存在、不为空,且不是False),则输出相应的数据块,然后流程跳转到endif标签之后。
如果没有变量为“真”,则输出else数据块(如果else数据块存在的话)。
在if和elif标签中直接使用变量时,当变量存在、不为空且不是False时,视为“真”。
在if和elif标签中可使用下列逻辑运算符。
not:逻辑取反,“真”取反为“假”,“假”取反为“真”。例如,{% if not data %}。
and:逻辑与,当两个操作数均为“真”时,结果才为“真”。例如,{% if x and y %}。
or:逻辑或,当两个操作数均为“假”时,结果才为“假”。例如,{% if x or y %}。
3个逻辑运算符的优先级从高到低依次为:not、and、or。