在odoo v9中如何覆盖BaseModel中的方法

admin 2020-9-17 13565


就贴个例子,有需要的对着例子去研究吧

from openerp import models, api
 
class BaseModelExtend(models.AbstractModel):
  _name = 'basemodel.extend'
 
  def _register_hook(self, cr): 
    @api.cr_uid_context
    def user_has_groups(self, cr, uid, groups, context=None):
      #My code
 
    models.BaseModel.user_has_groups = user_has_groups
    return super(BaseModelExtend, self)._register_hook(cr)


另外的例子(增加了一个自定义属性)

from openerp import api, fields, models, _
 
class BaseModelExtend(models.AbstractModel):
    _name = 'basemodel.extend'
    models.BaseModel._navigation = 'id'
 
    def _register_hook(self, cr):
        '''
        Register method in BaseModel 
        '''
        @api.multi
        def navigate_field(self):
            #CODE
            return True
        models.BaseModel.navigate_field = navigate_field
        return super(BaseModelExtend, self)._register_hook(cr)

 参考这篇文章:
https://q-a-assistant.com/computer-internet-technology/1728481_how-we-can-inherit-basemodel-class-in-odoo.html

最新回复 (0)
返回