我在Odoo 10中遇到onchange
函数的问题。
这是一些示例代码:
class test_1(models.Model)
Input = fields.Integer()
从另一个类中,我有一个onchange
函数。此类是默认系统,无法在此代码中更改或添加任何内容。
class test_onchange(models.Model)
@api.onchange('Input')
def _onchange_test_1(self):
## some process ##
这是我正在编写的函数。它也是onchange
的{{1}}。
Input
所以问题是:
如果class test_onchanger(models.Model)
@api.onchange('Input')
def _onchange_test_addon(self):
## some process. and different _onchange_test_1
字段已经具有默认值的onchange
函数,如何在另一个类/模块的Input
字段上构建Input
函数系统/代码。
有人知道吗?我可以继承onchange
还是其他东西?
答案 0 :(得分:2)
要确认,您要扩展(在其中添加自定义项)现有的onchange
方法吗?
如另一个答案中所述,最简单的方法是仅继承现有的onchange
方法。
我们假设这是核心代码,您无法修改:
class CoreClass(models.Model):
_name = 'core.class'
Input = fields.Integer()
@api.onchange('Input')
def _onchange_input(self):
## some process ##
在您的模块中,您可以扩展类并进行其他更改。
注意:当您使用super
调用时,核心类方法仍然运行。
class CoreClassCustom(models.Model):
_inherit = 'core.class'
@api.onchange('Input')
def _onchange_input(self):
res = super(CoreClassCustom, self)._onchange_input()
## your custom process ##
return res
这里是the Odoo 10 ORM Documentation,简要介绍了onchange
方法。
答案 1 :(得分:0)
您可以继承现有的onchange方法或为同一字段编写另一个onchange方法,两者都可以。