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

Odoo14环境下QWeb模板动态设置布尔HTML属性的解决方案问询

解决方案

Odoo 14的QWeb引擎原生支持动态布尔属性渲染,你无需使用用于格式化字符串的t-attf-指令,改用普通的t-att-指令即可实现需求:

<input class="custom-control-input" type="radio" t-attf-name="radio-1" t-attf-id="radio-1" value="1" t-att-checked="elem_num == 0"/>
<input class="custom-control-input" type="radio" t-attf-name="radio-2" t-attf-id="radio-2" value="2" t-att-checked="elem_num == 1"/>
<input class="custom-control-input" type="radio" t-attf-name="radio-3" t-attf-id="radio-3" value="3" t-att-checked="elem_num == 2"/>

原理解释

  • QWeb处理t-att-{属性名}指令时,会判断后面表达式的返回值:
    • 如果返回值为False、None这类假值,会完全省略该属性的输出,符合HTML布尔属性不存在即代表false的规则
    • 如果返回值为真值,会自动输出标准的布尔属性格式checked="checked",浏览器可正确识别为选中状态
  • 你之前使用的t-attf-是字符串格式化专用指令,无论表达式返回什么结果都会把值作为属性值输出,因此会出现哪怕值为0、false也会渲染属性的问题,不适合用于布尔属性场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:06:00