Odoo模型配置compute计算字段后不生效问题咨询
Odoo计算字段compute属性为空常见原因
- 代码未正确加载到Odoo运行环境:修改代码后未重启Odoo服务、对应自定义模块未执行升级操作、模块存放路径未加入Odoo配置的
addons_path参数,都会导致新写的字段定义不生效。 - compute绑定的方法名不匹配:字段定义中
compute='_compute_value'的方法名必须和实际定义的计算方法完全一致,大小写、下划线数量只要有一处不同,就会导致绑定失败,compute属性为空。 - 计算方法存在语法/运行错误:你当前代码的计算逻辑存在错误,
record.value = a/b中的a和b未指定所属记录,正确写法应为record.value = record.a / record.b,该错误会触发NameError,导致模型加载失败,字段定义不生效。 - 字段被重定义覆盖:如果存在其他继承
my.model的模型,或是同模块后续代码重新定义了value字段,且新的字段定义未指定compute参数,会覆盖你原来的字段配置,丢失compute属性。 - 视图配置覆盖字段属性:如果在对应视图的XML定义中,手动给
value字段设置了compute=""的属性,会优先读取视图配置,导致页面显示compute属性为空。 @api.depends装饰器配置错误:如果漏加@api.depends装饰器,或是装饰器中填写的依赖字段名拼写错误,也会导致计算字段绑定异常。
内容的提问来源于stack exchange,提问作者Bashir
相关产品推荐
相关产品推荐

