Odoo 14 覆盖方法
Odoo 14 overriding method
我正在尝试创建一个覆盖销售订单确认按钮的 Odoo 模块。我按照我找到的信息,创建了以下代码,但它不起作用。
from odoo import models, fields, api
import logging
_logger = logging.getLogger(__name__)
class saleoverride(models.Model):
_name = 'saleoverride.saleoverride'
_description = 'saleoverride'
_inherit = 'sale.order'
name = fields.Char()
# value = fields.Integer()
# value2 = fields.Float(compute="_value_pc", store=True)
description = fields.Text()
transaction_ids = fields.Many2many('payment.transaction', 'saleoverride_transaction_rel', 'saleoverride_id', 'transaction_id',
string='Transactions', copy=False, readonly=True)
tag_ids = fields.Many2many('crm.tag', 'saleoverride_tag_rel', 'saleoverride_id', 'tag_id', string='Tags')
@api.model
def action_confirm(self):
res = super(SaleOrder, self).action_confirm()
_logger.info("saleoverride_action_confirm")
_logger.info(self)
return res
我试图在日志文件中搜索消息,但找不到任何内容。有人可以帮助我吗?
谢谢!
问题是您不是在扩展 sale.order
模型,而是在 sale.order
.
的基础上创建一个新模型 (saleoverride.saleoverride
)
查看 odoo 文档:Inheritance and extension
from odoo import models, fields, api
import logging
_logger = logging.getLogger(__name__)
class saleoverride(models.Model):
_description = 'saleoverride'
_inherit = 'sale.order'
name = fields.Char()
# value = fields.Integer()
# value2 = fields.Float(compute="_value_pc", store=True)
description = fields.Text()
transaction_ids = fields.Many2many('payment.transaction', 'saleoverride_transaction_rel', 'saleoverride_id', 'transaction_id',
string='Transactions', copy=False, readonly=True)
tag_ids = fields.Many2many('crm.tag', 'saleoverride_tag_rel', 'saleoverride_id', 'tag_id', string='Tags')
def action_confirm(self):
res = super(SaleOrder, self).action_confirm()
_logger.info("saleoverride_action_confirm")
_logger.info(self)
return res
从您的 class 中删除 _name = 'saleoverride.saleoverride'
会为 sale.order
添加新功能。
同时删除装饰器,因为原始函数没有装饰器。
当你想覆盖插件中的代码时,你能做的就是继承它。因此,您不能在覆盖现有代码的同时定义名称。
去掉:
_姓名='saleoverride.saleoverride'
我正在尝试创建一个覆盖销售订单确认按钮的 Odoo 模块。我按照我找到的信息,创建了以下代码,但它不起作用。
from odoo import models, fields, api
import logging
_logger = logging.getLogger(__name__)
class saleoverride(models.Model):
_name = 'saleoverride.saleoverride'
_description = 'saleoverride'
_inherit = 'sale.order'
name = fields.Char()
# value = fields.Integer()
# value2 = fields.Float(compute="_value_pc", store=True)
description = fields.Text()
transaction_ids = fields.Many2many('payment.transaction', 'saleoverride_transaction_rel', 'saleoverride_id', 'transaction_id',
string='Transactions', copy=False, readonly=True)
tag_ids = fields.Many2many('crm.tag', 'saleoverride_tag_rel', 'saleoverride_id', 'tag_id', string='Tags')
@api.model
def action_confirm(self):
res = super(SaleOrder, self).action_confirm()
_logger.info("saleoverride_action_confirm")
_logger.info(self)
return res
我试图在日志文件中搜索消息,但找不到任何内容。有人可以帮助我吗?
谢谢!
问题是您不是在扩展 sale.order
模型,而是在 sale.order
.
saleoverride.saleoverride
)
查看 odoo 文档:Inheritance and extension
from odoo import models, fields, api
import logging
_logger = logging.getLogger(__name__)
class saleoverride(models.Model):
_description = 'saleoverride'
_inherit = 'sale.order'
name = fields.Char()
# value = fields.Integer()
# value2 = fields.Float(compute="_value_pc", store=True)
description = fields.Text()
transaction_ids = fields.Many2many('payment.transaction', 'saleoverride_transaction_rel', 'saleoverride_id', 'transaction_id',
string='Transactions', copy=False, readonly=True)
tag_ids = fields.Many2many('crm.tag', 'saleoverride_tag_rel', 'saleoverride_id', 'tag_id', string='Tags')
def action_confirm(self):
res = super(SaleOrder, self).action_confirm()
_logger.info("saleoverride_action_confirm")
_logger.info(self)
return res
从您的 class 中删除 _name = 'saleoverride.saleoverride'
会为 sale.order
添加新功能。
同时删除装饰器,因为原始函数没有装饰器。
当你想覆盖插件中的代码时,你能做的就是继承它。因此,您不能在覆盖现有代码的同时定义名称。 去掉: _姓名='saleoverride.saleoverride'