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