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

Odoo15中res.partner的name_get()保存时未触发问题咨询

Odoo日记账分录行partner_id保存后显示原名称的解决办法

重写res.partner的name_get()实现组合字段显示后,在Many2One选择弹窗中能正常展示,但保存日记账分录行(account.move.line)后,partner_id仍显示原名称且name_get()未触发,可从以下几个方向排查解决:

  • 检查account.move.line模型的partner_id字段自定义逻辑
    部分场景下,继承account.move.line后可能重写了partner_id的显示逻辑,或者字段定义中添加了特殊context、widget影响显示效果。查看该字段的定义,确认是否存在context={'default_display_name': ...}这类配置,或是自定义widget替代了默认的many2one显示逻辑。

  • 强制清除partner的display_name缓存
    Odoo会缓存记录的display_name值,保存move line时可能未触发缓存更新。可在继承的account.move.line中重写write和create方法,主动刷新对应partner的缓存:

    def write(self, vals):
        res = super().write(vals)
        if 'partner_id' in vals:
            partner = self.env['res.partner'].browse(vals['partner_id'])
            partner.invalidate_cache(['display_name'], [partner.id])
        return res
    
    def create(self, vals):
        res = super().create(vals)
        if 'partner_id' in vals:
            partner = self.env['res.partner'].browse(vals['partner_id'])
            partner.invalidate_cache(['display_name'], [partner.id])
        return res
    
  • 排查自动化操作对display_name的影响
    检查是否存在server action、自动化规则等,在保存move line时间接修改了partner的display_name缓存或相关字段值,导致显示异常。

  • 确认res.partner的name_get重写全局生效
    确保重写name_get()时使用了_inherit = 'res.partner',而非仅针对特定视图生效。可在方法中添加日志输出,验证保存move line时是否真的未触发该方法:

    import logging
    _logger = logging.getLogger(__name__)
    
    def name_get(self):
        _logger.info("res.partner的name_get已触发,记录ID:%s", self.ids)
        return [(acc.id, '{} - {}'.format(acc.custom_field, acc.name) if acc.name else acc.custom_field)
                for acc in self]
    

    执行保存操作后查看日志,确认方法调用情况。

  • 检查视图中partner_id的widget配置
    若partner_id字段使用了many2one_reference等特殊widget,可能会绕过name_get()直接显示原字段值。确认account.move.line对应视图中,partner_id的widget为默认的many2one。

内容的提问来源于stack exchange,提问作者Odoo Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:09:22