You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django HTML模板中if语句不生效问题求助

解决Django模板中布尔if条件不生效的问题

首先,你的代码存在Django模板语法的细节问题,同时需要排查数据与字段的正确性:

1. 简化if条件判断

Django模板对布尔值的判断无需和True做比较,直接使用变量名即可。把条件修改为:

{% if feature.is_true %}
<p> Yes this is True</p>
{% endif %}

模板引擎会自动识别布尔类型的True/False,多余的== True反而可能引发判断异常(比如字段值是字符串类型的"True"时,判断会失败)。

2. 验证数据与字段正确性

  • 确认feature实例的is_true字段确实是布尔类型的True,而非字符串"True"、数字1这类值。可以在视图中打印feature.is_true和它的类型type(feature.is_true)来排查。
  • 检查模型中字段的定义,确保is_true是models.BooleanField()类型,且字段名没有拼写错误(比如误写为istrue或is_truee)。

3. 临时测试验证

如果问题仍存在,可在视图里手动构造一个带is_true=True的feature实例传入模板,测试是否能正常显示内容,以此区分是模板语法问题还是数据传递问题。

修改后的完整模板代码示例:

<div class="row icon-boxes">
        {% for feature in features %}
        <div class="col-md-6 col-lg-3 d-flex align-items-stretch mb-5 mb-lg-0" data-aos="zoom-in" data-aos-delay="200">
          <div class="icon-box">
            <div class="icon"><i class="ri-stack-line"></i></div>
            <h4 class="title"><a href="">{{feature.name}}</a></h4>
            <p class="description">{{feature.details}}</p>
            {% if feature.is_true %}
            <p> Yes this is True</p>
            {% endif %}
          </div>
        </div>
        {% endfor %}
</div>

内容的提问来源于stack exchange,提问作者Aaradhya Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:15:01