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

Odoo中为何quoted_product_num是tuple类型?len()结果异常

问题原因及解决办法

为什么quoted_product_num是元组类型?

问题出在你赋值语句末尾的多余逗号:

quoted_product_num = len(rec.requisition_id.vendor_ids.filtered(
    lambda v: rec in v.projects and v.state == VendorLineEnum.QUOTED.value)),

在Python语法中,只要在表达式末尾添加逗号,哪怕只有单个元素,也会被解析成元组。这里的逗号让原本应该是整数的len()结果被包裹成了一个单元素元组。

修复方法

直接去掉赋值行末尾的逗号即可:

quoted_product_num = len(rec.requisition_id.vendor_ids.filtered(
    lambda v: rec in v.projects and v.state == VendorLineEnum.QUOTED.value))

额外提示:修复前的if quoted_product_num判断会存在逻辑问题——非空元组在布尔判断中始终为True,哪怕元组里的整数是0。修复后这个判断就能正常基于整数的0/非0状态执行了。

内容的提问来源于stack exchange,提问作者CHIU TZE CHEUNG

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:15:30