odoo 8中布尔字段的onchange函数

onchange functions on boolean fields in odoo 8

我想知道 onchange 函数如何处理布尔值和整数字段。 假设如果一个布尔字段更改为 True,则应更改相应整数的值。

提前致谢。

@api.onchange

如果装饰器中指定的任何字段以以下形式更改,则此装饰器将触发对装饰函数的调用:

@api.onchange('fieldx')
def do_stuff(self):
   if self.fieldx == x:
       self.fieldy = 'toto'

在前面的示例中,self 对应于当前在表单上编辑的记录。在 on_change 上下文中时,所有工作都在缓存中完成。因此,您可以在函数内部更改 RecordSet 而不必担心更改数据库。这是与@api.depends

的主要区别

在函数 return 中,缓存和 RecordSet 之间的差异将被 return 编辑到表单中。

查看管理

新 API 的一大改进是 onchange 以简单的方式自动插入到表单中。您再也不用为修改视图而烦恼了。

警告和域

要更改域或发送警告,只需 return 通常的字典。注意不要在这种情况下使用@api.one,因为它会破坏字典(把它放在列表中,网络客户端不支持)。