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
相关产品推荐
相关产品推荐

