我想继承res.users类并覆盖她的write方法,所以我写了这段代码:
class User(models.Model):
_inherit = 'res.users'
is_commercial = fields.Boolean(string= 'is Commercial')
@api.multi
def write(self, values):
super(User, self).write()
for partner in self.partner_id:
partner.is_commercial = self.is_commercial
我也创建了这个res.partner类:
class Partner(models.Model):
_inherit = 'res.partner'
is_commercial = fields.Boolean(string= 'is Commercial')
现在,当我尝试更改is_commercial内容时,会出现以下错误:
TypeError: write() got an unexpected keyword argument 'context'
在我看来,覆盖res.users类中的write方法存在语法错误。有人能帮我吗?感谢。
答案 0 :(得分:2)
您可以尝试这样做:将super(User, self).write()
替换为super(User, self).write(values)
。这应该有用。
答案 1 :(得分:0)
当你调用write()时,你应该传递任何参数或上下文。所以你可以在write()方法中传递值。如下所示
super(User, self).write(values)
因为write()接受字典类型数据。
答案 2 :(得分:0)
当你调用write()时,尝试传递任何参数或上下文。
例如:
@api.multi
def action_cancel(self):
res = super(SaleOrder, self).action_cancel()
.
.
your logic
.
.
return res
答案 3 :(得分:-1)
如何覆盖res.users类中的write方法:您只需要编写此代码来覆盖write方法:
class User(models.Model):
_inherit = 'res.users'
@api.multi
def write(self, vals):
res = super(User, self).write(vals)
your code here...
return res