我想知道onchange函数如何与布尔和整数字段一起使用。 假设如果一个布尔字段变为True,则应更改相应整数的值。
提前致谢。
答案 0 :(得分:5)
<强> @ 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客户端不支持)。