如何解决Odoo 17中代码出现的ValueError: STORE_ATTR禁用操作码错误?
解决Odoo Studio计算字段STORE_ATTR错误
问题原因
Odoo Studio对计算字段的Python脚本做了安全限制,禁止直接给记录字段赋值(你代码里的rec.x_studio_total_ic_weight = ...属于赋值操作,对应的字节码STORE_ATTR被系统拦截)。Studio的计算字段脚本逻辑应该是返回计算结果,而非主动修改字段值。
修复步骤
- 替换原有代码为返回计算值的形式,不需要循环(Studio计算字段默认针对单条记录处理,
self即当前记录):
return self.qty_production * self.x_studio_related_field_41o_1horg1c8a
- 确认依赖字段:如果
x_studio_related_field_41o_1horg1c8a是product_id的关联字段,你当前添加的qty_production,product_id依赖是正确的,能保证字段值变化时自动触发重新计算。
额外说明
如果需要处理批量记录的计算场景,Studio的脚本环境仍不支持循环赋值,这种情况下建议通过自定义模块实现计算字段,而非在Studio中编写复杂逻辑。
内容的提问来源于stack exchange,提问作者KbiR
相关产品推荐
相关产品推荐

