gpt4 book ai didi

openerp - Odoo/OpenERP中非模型、核心类的继承

转载 作者:行者123 更新时间:2023-12-04 18:02:55 26 4
gpt4 key购买 nike

在Odoo中,我想修改addons/web/session/OpenERPSession类,但不修改核心代码。这意味着我想从我的模块中继承这个类,以便系统将使用我的 OpenERPSession 类版本而不是核心类。具体来说,我只想改变一个方法的实现,我通过覆盖它来实现:

class ExtendedSession(session.OpenERPSession):

def model(self, model):
_logger = logging.getLogger(__name__)
_logger.info('OVERRIDEN ==================== OpenERPSession.model')
if self._db == False:
raise session.SessionExpiredException("Session expired")
return session.Model(self, model)

但不幸的是,'OVERRIDEN ==================== OpenERPSession.model' 语句未打印,因此系统不会调用我的实现。

我如何指示 Odoo 使用我的 OpenERPSession 实现?

最佳答案

抱歉回答晚了...

对于任何非模型类,您可以使用该类的完整签名路径来继承它们,例如。

您可以使用完整路径继承session.OpenERPSession ...

class ExtendedSession(addons.web.sessions.OpenERPSession):

def model(self, model):
_logger = logging.getLogger(__name__)
_logger.info('OVERRIDEN ==================== OpenERPSession.model')
if self._db == False:
raise session.SessionExpiredException("Session expired")
return session.Model(self, model)

试试这个……

关于openerp - Odoo/OpenERP中非模型、核心类的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31934806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com