如何在odoo中覆盖保存操作?

时间:2017-01-12 13:21:45

标签: python openerp xml-rpc

我只是Odoo的新手。我想在销售标签中创建客户时覆盖保存方法(我正在使用odoo 8)。 因此,当我单击保存时,我将向其他系统(ESB)发送XML RPC消息。 我会在许多odoo模块(包括广告)中做这种覆盖,但我不知道从哪里开始? 我现在已经在我的系统上安装了odoo,并从git存储库下载了源代码(https://github.com/odoo/odoo/tree/8.0) 请问我该怎么办?

由于

2 个答案:

答案 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