Как наследовать безымянный класс и переопределить его метод в OpenERP V8 (Odoo)

Я хочу унаследовать класс с именем AuthSignupHome для переопределения его метода с именем do_signup, но этот класс не имеет атрибута _name.

Маршрут класса AuthSignupHome: odoo/addons/auth_signup/controllers/main.py

Я читал, чтобы переопределить метод, необходимо переопределить атрибуты класса, но это не так... и мне это не нужно, я немного запутался!

Я новичок в odoo, пожалуйста, объясните по простому, как мне это сделать?

EDIT: Это веб-контроллер, я читал о наследовании и переопределении, может ли кто-нибудь дать мне руководство для этого?


person Juan Salcedo    schedule 11.06.2015    source источник


Ответы (2)


Я решил это, сначала создав веб-модуль и контроллер main.py.

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

внутри я переопределяю метод

def do_signup(self, qcontext):

, это все :)

person Juan Salcedo    schedule 11.06.2015

Нашел это в старом старом документе 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() необходимо, чтобы метод (и маршрут) оставались видимыми: если метод переопределен без декорирования, он будет «неопубликован»

декораторы всех методов объединяются, если декоратор переопределяющего метода не имеет аргумента, все предыдущие будут сохранены, любой предоставленный аргумент переопределит ранее определенные

person Hieu    schedule 16.11.2015