Module Odoo 14覆盖方法

Module Odoo 14覆盖方法,module,overriding,odoo,odoo-14,Module,Overriding,Odoo,Odoo 14,我正在尝试创建一个覆盖销售订单确认按钮的Odoo模块。我根据我找到的信息创建了以下代码,但它不起作用 来自odoo导入模型、字段和api的 导入日志记录 _logger=logging.getLogger(_名称__) 类(models.Model): _名称='saleoverride.saleoverride' _description='saleoverride' _继承='sale.order' name=fields.Char() #value=fields.Integer() #va

我正在尝试创建一个覆盖销售订单确认按钮的Odoo模块。我根据我找到的信息创建了以下代码,但它不起作用

来自odoo导入模型、字段和api的

导入日志记录
_logger=logging.getLogger(_名称__)
类(models.Model):
_名称='saleoverride.saleoverride'
_description='saleoverride'
_继承='sale.order'
name=fields.Char()
#value=fields.Integer()
#value2=字段.Float(compute=“\u value\u pc”,store=True)
description=字段。Text()
交易\ id=字段.Many2many('payment.transaction'、'saleoverride\ transaction\ rel'、'saleoverride\ id'、'transaction\ id',
string='Transactions',copy=False,readonly=True)
tag\u id=fields.Many2many('crm.tag','saleoverride\u tag\u rel','saleoverride\u id','tag\u id',string='Tags'))
@api.model
def动作确认(自我):
res=超级(SaleOrder,self).action_confirm()
_logger.info(“saleoverride\u action\u confirm”)
_logger.info(self)
返回res
我试图在日志文件中搜索邮件,但找不到任何内容。有人能帮我吗


谢谢

问题在于您没有扩展
sale.order
模型,而是基于
sale.order
创建一个新模型(
saleoverride.saleoverride

检查odoo文档:

来自odoo导入模型、字段和api的

导入日志记录
_logger=logging.getLogger(_名称__)
类(models.Model):
_description='saleoverride'
_继承='sale.order'
name=fields.Char()
#value=fields.Integer()
#value2=字段.Float(compute=“\u value\u pc”,store=True)
description=字段。Text()
交易\ id=字段.Many2many('payment.transaction'、'saleoverride\ transaction\ rel'、'saleoverride\ id'、'transaction\ id',
string='Transactions',copy=False,readonly=True)
tag\u id=fields.Many2many('crm.tag','saleoverride\u tag\u rel','saleoverride\u id','tag\u id',string='Tags'))
def动作确认(自我):
res=超级(SaleOrder,self).action_confirm()
_logger.info(“saleoverride\u action\u confirm”)
_logger.info(self)
返回res
从类中删除
\u name='saleoverride.saleoverride'
,将为
销售订单
添加新功能


由于原始函数没有decorator,所以也要删除decorator。

当您想要覆盖插件中的代码时,您所能做的就是继承它。因此,在重写现有代码时不能定义名称。 删除:
_name='saleoverride.saleoverride'

您能否添加一个提示,说明为什么要删除方法上方的
api.model
?因为这是正确的,但也应该在答案中注明;-)