Onchange和依赖于self的方法包含NewObjectId作为记录

问题描述 投票:0回答:1

据我所知,使用装饰器@onchange和@depends执行方法时,两者中的参数“self”几乎都是具有以下格式的记录集:

res.partner(1,2,3)(例如在本例中为res.partner模型)

什么代表装饰方法将应用于哪些记录。

如果ORM没有恢复数据库中的id,那是因为它是一个尚未记录的元素。

这是我从Odoo理论的书中学到的,到目前为止对我有用。

两周前,在更新了第三方模块之后,我开始注意到在我自己的模块中,self参数总是返回给我(例如):

res.partner(odoo.models.NewId对象位于0x7f8c0f604768,)

对于这些装饰器的每个方法都是如此。

这对我来说表明它没有恢复数据库中的id,只返回它在内存中的地址。

我尝试了很多东西,删除所有自己的模块并重新克隆它们,或者创建一个新的数据库,只安装自己的模块,或者创建一个新的基础,但只使用Odoo模块并使用scaffold命令创建的干净模块或者,删除IDE并重新安装,直到在另一台计算机上的实例中进行测试并安装我自己的模块。但我总能得到相同的结果。

在这两周之前,我自己模块中的方法正确地使用了自我。唯一的更新是第三方模块。

另一件值得关注的事情是,第三方模块和Odoo模块都确实恢复了自变量中的记录集(根据理论),但不是我自己的模块(甚至不是使用脚手架构建的基本模块)命令)。

我的问题是: - 为什么变量self以这种方式使用记录? - 如果是这样,我怎么能纠正这个错误?

非常感谢提前!! :)

python odoo odoo-11
1个回答
0
投票

对我来说,这对onchange方法来说很好。但是在依赖方法中,我理解自变量总是有记录集。这些图像显示了一个使用scaffold命令创建的简单模块,并使用Pycharm中的调试系统。我刚刚使用@depends装饰器停在一个方法中,这就是结果。

© www.soinside.com 2019 - 2024. All rights reserved.