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

如何在Django模板中对true/false类型变量执行if条件判断

Django模板布尔值判断及下拉选择框实现方案

一、布尔类型变量的if判断方法

Django模板的{% if %}标签原生支持布尔值判断,使用规则如下:

  • 直接写变量名即可判断是否为True:
{% if is_checked %}
<!-- 变量为True时展示的内容 -->
{% endif %}
  • 判断变量为False的写法:
{% if not is_checked %}
<!-- 变量为False时展示的内容 -->
{% endif %}
  • 如需严格匹配布尔类型(避免空字符串、0等假值被误判),可明确等值判断:
{% if some_bool == True %}
<!-- 仅变量为布尔值True时触发 -->
{% endif %}

二、下拉选择框代码修正

你当前的代码逻辑完全颠倒:匹配到对应company_id的option没有加selected属性,反而给所有不匹配的option加了selected,会导致下拉框默认选中最后一个不匹配的选项。修正后的代码如下:

<select id="company_id" name="company_id" class="form-control">
    <option value="">Select Company  {{company_id}}</option>
    {% for row in brands %}
    {% if row.id == company_id %} 
        <option value="{{ row.id }}" selected>{{ row.title }}</option>
    {% else %}
        <option value="{{ row.id }}">{{ row.title }}</option>
    {% endif %}
    {% endfor %}
</select>

常见兼容问题处理

如果出现判断不生效的情况,大概率是类型不匹配导致:比如视图传过来的company_id是字符串类型,而row.id是整数类型,可通过过滤器转成同类型再判断:

{% if row.id == company_id|add:"0" %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:39:01