Odoo技术咨询:如何在stock.move.line上显示合作伙伴名称
问题解决:在StockMoveLine中添加合作伙伴名称字段
错误原因
stock.move.line模型本身没有直接的partner_id字段,你直接使用related='partner_id'会找不到对应字段,因此触发KeyError: 'partner_id'。
正确实现方式
StockMoveLine通过move_id字段关联到StockMove模型,而StockMove中存在partner_id字段,所以需要通过move_id做层级关联:
from odoo import models, fields class StockMoveLine(models.Model): _inherit = 'stock.move.line' # 关联到对应的合作伙伴记录 partner_id = fields.Many2one(related='move_id.partner_id', string='合作伙伴', store=True) # 仅显示合作伙伴名称(可选) partner_name = fields.Char(related='move_id.partner_id.display_name', string='合作伙伴名称')
补充说明
related字段会自动同步关联字段的值,添加store=True可将值存入数据库,便于搜索和报表使用(可选配置)- 若仅需展示名称,使用
partner_name的Char类型更合适;若需要关联完整的合作伙伴数据,选择partner_id的Many2one类型
内容的提问来源于stack exchange,提问作者Matija Amondi
相关产品推荐
相关产品推荐

