我们在定义一个计算字段时往往会忽略这个计算字段被触发重算的环境。尤其是这个字段depends
其它对象的字段,或者我们的运行环境是 多公司的环境。这时候很可能一个没有权限用户对某个字段的修改触发了计算字段的重算,但是因为权限关系这个重算无法完成,从而会出现权限错误。
当你在遇到这种情况时,就要考虑给计算字段加compute_sudo
的属性,比如:
total_cost = fields.Float('Total Cost', compute='_compute_total', store=True, compute_sudo=True)
注意这种用法只对,store=True
的计算字段有效。