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,因为它会破坏字典(把它放在列表中,网络客户端不支持)。
我想知道 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,因为它会破坏字典(把它放在列表中,网络客户端不支持)。