onchange函数在odoo 8中的boolean字段上

时间:2015-10-12 12:18:07

标签: python xml odoo

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

提前致谢。

1 个答案:

答案 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客户端不支持)。