我只是Odoo的新手。我想在销售标签中创建客户时覆盖保存方法(我正在使用odoo 8)。 因此,当我单击保存时,我将向其他系统(ESB)发送XML RPC消息。 我会在许多odoo模块(包括广告)中做这种覆盖,但我不知道从哪里开始? 我现在已经在我的系统上安装了odoo,并从git存储库下载了源代码(https://github.com/odoo/odoo/tree/8.0) 请问我该怎么办?
由于
答案 0 :(得分:2)
实际上可以调用两个ORM方法。创建时,保存按钮将调用模型create()
,在更新/写入时,它将调用write()
。因此,您必须创建自己的自定义模块并覆盖这些方法。您应该调用super()
然后执行您想要对外部系统执行的操作。
Odoo本身有很多例子,已经完成了这些覆盖。
答案 1 :(得分:2)
一个简单的例子:
from openerp import models, api
class ResUsers(models.Model):
_inherit = "res.users"
@api.model
def create(self, vals):
self.do_something_else()
return super(ResUsers, self).create(vals)
@api.multi
def write(self, vals):
res = super(ResUsers, self).write(vals)
self.do_something_writefully_different()
return res