每当销售某种产品时,我都会尝试自动创建合约。我在产品中添加了一个字段,指向模板合同。
我知道@ api.depends,但这依赖于创建一个field.function。我不需要一个字段,但仍然希望我的函数被调用。我怎么能做到这一点?
答案 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中的那些字段。
希望这有帮助。