[已解决]odoo10 继承并扩展底层模块问题
-
[转载]
针对继承的模块而言:
res.partner
模型属于底层模型,当服务启动时候,就会加载模型数据结构;因此,当自定义了一个新模块res.partner
(或者说继承该模型),扩展了字段,没问题,可以正常安装,也可以正常使用!但是,但是!如果该新模块
res.partner
使用了一段时间后,假如你还想在该模块res.partner
基础上继续扩展字段!
对不起,这个时候,扩展后,重启odoo服务会报错,提示相关附件,找不到你扩展的那个字段。就是由于,服务启动的时候,附件模型py数据结构文件就会被加载,但是真正的此时数据库中还没有生成相应的字段,所以会报错。
针对完全自定义的模块:
而我们自己开发的模块在模型字段扩展后,为什么没有这个问题呢?这是因为,我们普通模块模型修改后,同样在odoo服务重启后,模型py文件会被加载,但是,我们可以进入应用列表,找到该模块,点击升级,数据库中就会生成新的表结构。
结论:我们在扩展odoo底层自带模块模型字段的时候,要么一次定义好,要么使用一段时间后还想扩展,那么可以重新编写个单独的模块来扩展。
-
这边有一个我以前的回答,供你参考:
-
@digitalsatori
首先感谢您,不过我的第二个问题感觉还是有疑惑的。首先:security文件改变read, write,create,unlink的权限也是需要更新模板,不需要重启odoo服务的?
在这里记录下对我有用的:
改变py文件需要重启服务器没错,还需Upgrade。
总结:应该是涉及数据库结构或内容改变需要更新模块。改xml涉及改变数据库内容,所以需要更新模块。比如:而改变实体类的字段属性,既改变了py文件又改变了数据库结构,所以需要重启服务器,同时更新模块。
卸载了重装相当于重启服务器+更新模块