Odoo14自定义模块升级报错KeyError:'stock_move_id'求助
问题解决:Odoo14新增Many2one字段触发KeyError
报错原因
你遇到的KeyError: 'stock_move_id'是因为当account.move的stock_move_id字段设置store=True时,Odoo会自动尝试在关联模型stock.move中寻找对应的反向关联字段(默认以当前字段名作为反向字段名),但stock.move模型不存在stock_move_id字段,因此触发错误。
解决方案
修改字段定义,显式指定inverse_name=False,告诉Odoo无需创建反向关联:
class AccountMove(models.Model): _inherit = "account.move" stock_move_id = fields.Many2one( 'stock.move', string='Stock Move', compute='_compute_stock_move_id', store=True, readonly=True, inverse_name=False # 添加该行参数 ) def _compute_stock_move_id(self): for move in self: stock_moves = move.line_ids.mapped('stock_move_id') move.stock_move_id = stock_moves[0] if stock_moves else False
说明
inverse_name=False参数会阻止Odoo自动在关联模型中查找或创建反向字段,适配你这个计算字段的场景——因为该字段是通过凭证行关联的库存移动计算得出,不需要在stock.move模型中建立反向关联关系。
内容的提问来源于stack exchange,提问作者Karistio
相关产品推荐
相关产品推荐

