Inheritance Odoo-扩展核心Odoo模块的方法?

Inheritance Odoo-扩展核心Odoo模块的方法?,inheritance,openerp,Inheritance,Openerp,我想扩展类configmanager(对象)(它位于/openerp/tools/config.py),它不是一个插件类,而是处理Odoo配置的基类。有没有什么好方法可以安全地继承它,这样我就不需要直接修改源代码了 另外,我需要重写该类中的一个方法。您必须执行猴子补丁。这里有一个例子: 请注意,即使您的插件已安装或未安装,也会应用monkey补丁。因此,您可以检查您的插件是否安装在您的方法中。如果您的插件未安装,则调用原始方法。请记住,python中的方法是对象 我尝试过这个,但它似乎对conf

我想扩展
类configmanager(对象)
(它位于
/openerp/tools/config.py
),它不是一个插件类,而是处理Odoo配置的基类。有没有什么好方法可以安全地继承它,这样我就不需要直接修改源代码了


另外,我需要重写该类中的一个方法。

您必须执行猴子补丁。这里有一个例子:


请注意,即使您的插件已安装或未安装,也会应用monkey补丁。因此,您可以检查您的插件是否安装在您的方法中。如果您的插件未安装,则调用原始方法。请记住,python中的方法是对象

我尝试过这个,但它似乎对configmanager类不起作用,因为它是在odoo完全加载之前激活的。所以它似乎总是首先加载原始方法,因为该方法用于加载加载项路径,加载后该路径才可见,修改加载项路径的模块加载在加载项路径中……)您必须扩展什么?您需要覆盖什么方法?我正在考虑扩展/覆盖此方法:
\u check\u addons\u path
(在openerp/tools/config.py中)。但可能还需要重写
\u parse\u config
load
方法,因此ConfigParser将允许我放置路径表达式,而不仅仅是实际路径(例如带有wilcard的路径,因此它将理解有多条路径而不是一条)。我建议您使用符号链接在一个路径中获取所需的加载项,并在addons\u path config参数中使用此加载项。那么,您不需要更改/扩展任何代码,但如果路径中的内容发生更改,我不需要更新符号链接吗?就像我想在symlink连接的路径中添加额外的插件一样(我的意思是在symlink创建之后)