Openerp 如何覆盖读/写odoo方法中的约束

Openerp 如何覆盖读/写odoo方法中的约束,openerp,Openerp,首先,我有一个模块a overwrite方法,并添加了如下约束: @api.multi def write(self, vals): if 'employee_id' in vals: if not self.env['hr.employee'].browse(vals['employee_id']).user_id: raise UserError(_('You must link this employee to a user')) r

首先,我有一个模块a overwrite方法,并添加了如下约束:

@api.multi
def write(self, vals):
    if 'employee_id' in vals:
        if not self.env['hr.employee'].browse(vals['employee_id']).user_id:
            raise UserError(_('You must link this employee to a user'))
    return super(class_name, self).write(vals)
然后我创建一个模块B继承模块a,我想删除write方法中的约束,但没有办法。我试图继承write方法并删除约束,但运气不好,我所能做的就是用另一个句子替换约束字符串,但这不是我想要的,我如何解决它

更新#1:基于@thangtn的建议,但仍不起作用

    @api.multi
    def write(self, vals):
        try: 
            if 'employee_id' in vals:
                if not self.env['hr.employee'].browse(vals['employee_id']).user_id:
                    raise UserError(_('You must link this employee to a user'))
        except UserError
            pass
        super(class_name, self).write(vals)

更新#2:通过将
super(class#u name,self).write(vals)
更改为
models.Model.write(self,vals)
在上述代码(更新#1)

中,您可以使用try/except绕过原始代码中的约束

from openerp.exceptions import UserError

@api.multi
def write(self, vals):
    try:
        super(class_name, self).write(vals)
    except UserError:
        # Your code goes here
        # ...

为什么不使用@api.constraints而不是将约束放在写方法中?我不知道,模块A不是我写的,我所需要的只是删除此约束我已经尝试了你的建议,但这并不能解决我的问题,它通过了我捕获的约束,但仍然在父方法中得到相同的约束,我已经根据我的要求更新了