【发布时间】:2015-10-12 12:18:07
【问题描述】:
我想知道 onchange 函数如何处理布尔和整数字段。 假设如果一个布尔字段更改为 True,则相应整数的值也应更改。
提前致谢。
【问题讨论】:
我想知道 onchange 函数如何处理布尔和整数字段。 假设如果一个布尔字段更改为 True,则相应整数的值也应更改。
提前致谢。
【问题讨论】:
@api.onchange
如果装饰器中指定的任何字段在表单中发生更改,此装饰器将触发对装饰函数的调用:
@api.onchange('fieldx')
def do_stuff(self):
if self.fieldx == x:
self.fieldy = 'toto'
在前面的示例中,self 对应于当前在表单上编辑的记录。在 on_change 上下文中,所有工作都在缓存中完成。所以你可以在你的函数中改变 RecordSet 而不必担心改变数据库。这是与@api.depends 的主要区别
函数返回时,缓存和RecordSet的差异会返回到表单中。
查看管理
新 API 的一大改进是 onchange 会以简单的方式自动插入到表单中。您不必再担心修改视图。
警告和域
要更改域或发送警告,只需返回常用字典即可。注意不要在这种情况下使用@api.one,因为它会破坏字典(将它放在一个列表中,Web 客户端不支持)。
【讨论】: