在Odoo v8中,如何在给定表中创建记录时调用函数?

时间:2015-03-20 00:45:49

标签: odoo odoo-8

每当销售某种产品​​时,我都会尝试自动创建合约。我在产品中添加了一个字段,指向模板合同。

我知道@ api.depends,但这依赖于创建一个field.function。我不需要一个字段,但仍然希望我的函数被调用。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:1)

您还可以查看来自OCA的auditlog 模块代码,他们已经实施了记录记录的操作......

但是如果你想让它变得灵活,可定制并避免硬编码,你最好使用action rules ......

操作规则允许您将操作绑定到对象创建和更新。如果你想挂钩其他方法,a possible approach提出了类似的问题(日志删除):

答案 1 :(得分:0)

您需要覆盖产品的写入方法,在里面您可以像这样调用您的函数,

def write(self, cr, uid, ids, vals, context=None):
    # add your custom code here
    return super(class_name,self).write(cr, uid, ids, vals, context=context)

如果此字段的值已更改,您需要在vals中检查您的字段,您的字段(我认为是州字段)可用,请检查如下。

if vals.get('state',False):
   ## call your function

请记住,您只会获得更新的vals中的那些字段。

希望这有帮助。