如何继承未命名的类并在OpenERP V8中覆盖其方法(Odoo)

时间:2015-06-11 15:14:50

标签: inheritance odoo openerp-7 openerp-8 odoo-8

我想继承到名为 AuthSignupHome 的类,以覆盖名为 do_signup 的方法,但此类没有 _name 属性。

AuthSignupHome 类的路线是: odoo / addons / auth_signup / controllers / main.py

我反过来重写一个方法,有必要重新定义类的属性,但它没有...我不需要它,我有点困惑!

我是odoo的新手,请以简单的方式澄清,我该怎么做?

编辑:这是一个网络控制器,我正在阅读继承和覆盖,有人能为我提供指导吗?

2 个答案:

答案 0 :(得分:1)

我解决了这个问题,首先构建了一个Web模块,然后是main.py控制器

class MyClass(openerp.addons.auth_signup.controllers.main.AuthSignup):

我在里面重写方法

def do_signup(self, qcontext):

,多数民众赞成:)

答案 1 :(得分:0)

在旧的OpenERP文档中找到了这个:http://odoo-documents.readthedocs.org/en/latest/reference/http.html

class MyController(openerp.http.Controller):
    @route('/some_url', auth='public')
    def handler(self):
        return stuff()

要覆盖控制器,从其类继承并覆盖相关方法,必要时重新公开它们:

class Extension(MyController):
    @route()
    def handler(self):
        do_before()
        return super(Extension, self).handler()
  

用route()装饰是保持方法(和路线)的必要条件   可见:如果重新定义方法而不进行装饰,那将是   “未发表的”

     

如果重写方法的话,所有方法的装饰器都会被组合在一起   装饰者没有任何论据所有以前的将被保留,任何提供   参数将覆盖先前定义的