我创建了一个函数f。 e。
@api.onchange('zip')
def onchange_zip(self):
self.name = "%s %s" % (self.name, self.zip)
当我通过界面更改zip字段时,它可以完美工作。但是,当我通过xml-rpc或其他任何api执行此操作时,不会触发它。与覆盖重写,创建方法有什么不同的解决方法吗?
答案 0 :(得分:0)
@api.onchage
用于即时更新内容,例如,以edit
模式在Web界面中更改字段中的内容并立即更新其他字段上的效果。每当您以其他方式(例如,通过python代码或odoo shell或在本示例xmlrpc
协议中)更改同一字段值时,都不会调用@onchange
函数。有多种解决方法,可以使用compute
函数而不是@onchange
,只要在{所提到的记录字段中检测到任何更改,就可以从orm
级别触发计算函数。 {1}}装饰器。或者,只要您更改字段中的值,就可以手动调用@api.depends
方法。