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

Odoo14如何继承并修改销售订单行sale.order.line的Name字段

Odoo销售订单行描述字段调整实现方案

核心实现思路

不需要修改Odoo原生代码,通过自定义模块继承对应模型重写相关逻辑即可,有两种实现方式可选:

方式1:重写product_id_change方法(兼容所有主流Odoo版本)

  • 第一步:创建自定义Odoo模块,在模块的models目录下新建py文件继承sale.order.line模型
  • 第二步:重写product_id_change方法,调用父类逻辑后覆盖name字段赋值,示例代码如下:
from odoo import models, api

class SaleOrderLineInherit(models.Model):
    _inherit = 'sale.order.line'

    @api.onchange('product_id')
    def product_id_change(self):
        # 调用父类原方法,保留价格、单位、税等自动计算逻辑
        result = super().product_id_change()
        if self.product_id:
            # 仅取销售描述,无销售描述时兜底显示产品名称
            self.name = self.product_id.description_sale or self.product_id.name
        return result
  • 第三步:将自定义模块在Odoo中安装升级即可生效

方式2:重写描述生成方法(适配Odoo 16+版本,更轻量化)

Odoo 16及后续版本将销售订单行描述的生成逻辑抽离为独立方法,直接重写该方法即可,无需修改onchange逻辑:

from odoo import models

class SaleOrderLineInherit(models.Model):
    _inherit = 'sale.order.line'
    
    def _get_sale_order_line_multiline_description_sale(self, product):
        return product.description_sale or product.name

验证说明

配置完成后新建销售订单,选择对应产品时,订单行的Description字段将仅展示产品的description_sale内容,不会自动拼接产品名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 00:27:03