2017-08-24 1 views

Répondre

1

Je viens de croiser aujourd'hui :)

Vous pouvez l'étendre dans deux façons. Cela dépend si vous avez vraiment besoin d'étendre BaseModel ou si vous devez étendre une sous-classe spécifique de BaseModel.

Sous classe

Pour toute sous-classe, vous pouvez hériter comme vous le feriez normalement:

from odoo import api, fields, models 

class User(models.Model): 
    _inherit = 'res.users' 

    @classmethod 
    def check(cls, db, uid, passwd): 
     return super(User, cls).check(db, uid, passwd) 

Prolongez BaseModel directement

Dans le cas de BaseModel lui-même vous allez besoin de patch de singe:

from odoo import models 

def my_build_model(cls, pool, cr): 
    # Make any changes I would like... 

    # This the way of calling super(...) for a monkey-patch 
    return models.BaseModel._build_model(pool, cr) 

models.BaseModel._build_model = my_build_model