0
我要继承的class BaseModel(object)
如何继承或odoo
@classmethod
如何继承或覆盖我们的自定义模块中的@classmethod
orverride @classmethod?
我要继承的class BaseModel(object)
如何继承或odoo
@classmethod
如何继承或覆盖我们的自定义模块中的@classmethod
orverride @classmethod?
我今天刚碰到这个:)
你可以用几种方法扩展它。这取决于你是否真的需要扩展BaseModel
或者如果你需要扩展一个特定的子类BaseModel
。
子类
对于任何子类可以继承它,你通常会:
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)
扩展BaseModel直接
在BaseModel
案件本身,你会需要猴子补丁:
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