1

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

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

4

2 回答 2

1

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

但是,如果您想使其灵活、可定制并避免硬编码,您最好使用操作规则......

操作规则允许您将操作绑定到对象创建和更新。如果您想在此处挂钩其他方法,则可以针对类似问题(日志删除)提出一种可能的方法:

于 2015-05-27T07:29:54.713 回答
0

您需要覆盖产品的 write 方法,并且在内部您可以像这样调用您的函数,

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 中检查您的字段,如果该字段的值已更改,您的字段(我认为 state 字段)将可用,检查如下。

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

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

希望这可以帮助。

于 2015-03-20T04:21:49.297 回答