在 Odoo 中获取 post 保存事件

Get post save event in Odoo

我想在数据库中保存一些记录后执行一个函数(类似于 Django 中的 Signals)。

我试过使用 Odoo Connector 但没有成功。 connector 默认情况下 openerp.addons 包中不存在模块,我找不到好的资源来了解如何安装它。

如何在每次保存新记录时执行一个函数?

我自己解决了

  1. 我手动将 connector 模块从 github 复制到 /usr/lib/python2.7/dist-packages/openerp/addons(以确保它在我的 IDE 的库路径中)。
  2. 已从“设置”->“本地模块”安装连接器。
  3. 使用了以下代码(可以在任何地方,甚至在模块的 __init__.py 中)

    @on_record_create(model_names=['res.users', 'res.partner'])
    @on_record_write(model_names=['res.users', 'res.partner'])
    def delay_export(session, model_name, record_id, vals):
        """
        Do some real work here.
        """
        import ipdb; ipdb.set_trace()
    

以上代码基于odoo-connector.