如何在 Odoo 中导入在第三方模块中声明的 Python 纯 class?

How to import a Python pure class declared in a third-party module in Odoo?

我已经从名为 mis-builder.[=18 的 Odoo 社区协会存储库安装了模块 mis_builder =]

在该模块中,有一个纯粹的 Python class 定义,超出 Odoo 标准:

class AccountingExpressionProcessor(object):

    ...

    def get_aml_domain_for_expr(self, expr, date_from, date_to, target_move, account_id=None):
        ...

问题是我需要创建一个自定义模块来覆盖方法 get_aml_domain_for_expr,在 class AccountingExpressionProcessor.

中定义

所以在我的模块中,我想导入 AccountingExpressionProcessor class。我的问题是:

在我的 Python 文件中导入 class 的最佳方法是什么?

我这样做了:

import imp

aep = imp.load_source(
    'mis_builder.AccountingExpressionProcessor',
    '/my/absolute/path/to/mis-builder/mis_builder/models/aep.py'
)

然后尝试以这种方式从导入的 class 继承:

class AccountingExpressionProcessor(aep.AccountingExpressionProcessor):

此解决方案无效。除此之外,我不想指定绝对路径,因为每个 Odoo 实例都有自己的路径。

我试了很多东西都没有结果。我正在使用 Python 2.7,因为它是 Odoo 10。有谁知道一个好的解决方案吗?

我不确定它是否适合你,但我有一个 ODOO 实现相同的例子。

from odoo.addons.account_taxcloud.models.taxcloud_request import TaxCloudRequest

这里的代码继承了account_taxcloud(模块)+taxcloud_request(py文件) 然后使用方法:

class TaxCloudRequest(TaxCloudRequest):

    def set_order_items_detail(self, order):

请检查它是否适合您。如果您找到任何解决方案,也请更新。