Odoo:只在更新模型时调用 write 方法
Odoo : write method is only invoked when updating a model
在我创建的模型中,我实现了写入方法来更新另一个模型字段,所以我想在每次创建记录时调用此操作,但显然 Odoo 仅在更新记录时调用该方法。
这是模型的摘录:
class formulaire_evaluation(models.Model):
_name = 'pncevaluation.fe'
_description = u"Formulaire d\'évaluation"
name = fields.Char(u"Intitulé du formulaire")
contributeur = fields.Many2one('pncevaluation.contributeur',string="Contributeur")
date = fields.Date(u"Date")
@api.multi
def write(self, vals):
rec = super(formulaire_evaluation, self).write(vals)
#my_custom_code
return rec
在创建记录时,Odoo 调用 ORM create() 方法。因此,在您的情况下,我们需要重写 create() 方法。
例如:
@api.model
def create(self, vals):
res = super(formulaire_evaluation, self).create(vals)
#### your logic to update another model
return res
注意:
如果您只想在创建记录时执行此操作,请使用 create() 方法并删除 write() 方法。否则,请使用 create() 和 write().
这两种方法
在我创建的模型中,我实现了写入方法来更新另一个模型字段,所以我想在每次创建记录时调用此操作,但显然 Odoo 仅在更新记录时调用该方法。
这是模型的摘录:
class formulaire_evaluation(models.Model):
_name = 'pncevaluation.fe'
_description = u"Formulaire d\'évaluation"
name = fields.Char(u"Intitulé du formulaire")
contributeur = fields.Many2one('pncevaluation.contributeur',string="Contributeur")
date = fields.Date(u"Date")
@api.multi
def write(self, vals):
rec = super(formulaire_evaluation, self).write(vals)
#my_custom_code
return rec
在创建记录时,Odoo 调用 ORM create() 方法。因此,在您的情况下,我们需要重写 create() 方法。
例如:
@api.model
def create(self, vals):
res = super(formulaire_evaluation, self).create(vals)
#### your logic to update another model
return res
注意:
如果您只想在创建记录时执行此操作,请使用 create() 方法并删除 write() 方法。否则,请使用 create() 和 write().
这两种方法