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

Odoo16 QWeb:如何将Float转为Int以按库存循环打印标签

Odoo16 QWeb中Float转Int实现标签批量打印

解决你遇到的Float类型无法迭代的问题,直接按以下方式处理:

1. 将Float库存值转为整数

在QWeb里使用int()函数直接转换库存数量,它会自动提取float的整数部分(例如5.9会转为5)。如果需要四舍五入逻辑,改用round()函数即可。

2. 用range()循环生成对应数量的标签

转换后的整数可以正常传入range(),实现按库存数量循环打印标签。

修正后的完整代码示例:

<t t-name="xxNAMExx">
    <t t-set="qty" t-value="int(product.qty_available)"/> <!-- Float转Int -->
    <!-- 增加判断避免0或负数时无意义循环 -->
    <t t-if="qty > 0">
        <t t-foreach="range(qty)" t-as="item">
            <div>CONTENT</div>
        </t>
    </t>
</t>

补充说明

  • 之前直接用range(product.qty_available)无效,是因为range()仅接受整数参数,传入float类型会触发类型错误。
  • 如果需要向上取整(比如5.1打印6个标签),可以使用math.ceil(),在QWeb中写法为t-value="math.ceil(product.qty_available)",需确保模板能访问math模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:13:11