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

更多详情Odoo's ORM methods

注意:

如果您只想在创建记录时执行此操作,请使用 create() 方法并删除 write() 方法。否则,请使用 create()write().

这两种方法