You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:05:23