Odoo/OpenERP中非模型核心类的继承
在Odoo中,我想修改addons/web/session/OpenERPSession类,而不修改核心代码。这意味着我想从我的模块中对这个类进行子类化,以便系统将使用我的OpenERPSession类版本,而不是核心类。具体来说,我只想改变一个方法的实现,我通过覆盖它来实现:Odoo/OpenERP中非模型核心类的继承,openerp,odoo,openerp-7,Openerp,Odoo,Openerp 7,在Odoo中,我想修改addons/web/session/OpenERPSession类,而不修改核心代码。这意味着我想从我的模块中对这个类进行子类化,以便系统将使用我的OpenERPSession类版本,而不是核心类。具体来说,我只想改变一个方法的实现,我通过覆盖它来实现: class ExtendedSession(session.OpenERPSession): def model(self, model): _logger = logging.getLogge
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)
但不幸的是,未打印“Overrided=====================================OpenERPSession.model”语句,因此系统不会调用我的实现
我如何指示Odoo使用我的OpenerSession实现?很抱歉回答得太晚 对于任何非模型类,您都可以通过使用该类的完整签名路径来继承它们,例如 您可以使用完整路径继承
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)
试试这个……您是否添加了web模块作为模块的依赖项?是的,我添加了。但是奥多不使用我的课程。