Django Web应用中Jinja模板if条件判断输出与预期相反问题
问题原因
- 核心错误是变量类型不匹配:你代码中
info.is_verified是布尔类型,实际值为布尔值False,但你的判断条件写的是== "false",这里的"false"是字符串类型,二者在Jinja模板的逻辑判断中完全不相等,因此if分支永远不会触发,只会执行else分支的逻辑,最终输出结果和预期完全相反。
修复方案
你可以任选以下任意一种方式修改判断逻辑即可:
- 直接对布尔值取反判断(最简洁的写法,推荐):
{% for info in infos %} {% if not info.is_verified %} <h4>Verification status: PENDING</h4> {% else %} <h4>Verification status: APPROVED</h4> {% endif %} {% endfor %}
- 显式和布尔值
False做对比:
{% if info.is_verified == False %}
注意:不要给布尔值加引号,加引号后就会被识别为字符串,无法和布尔类型的变量匹配。
内容的提问来源于stack exchange,提问作者Vivek
相关产品推荐
相关产品推荐

