如何在many2many字段上使用write方法?

问题描述

〜... py

@api.onchange('test_record')
def abcde(self):
    rec = self.test_record.id
    res = self.env['anc'].browse(rec)
    res.write({'partner_id': (4,self.partner_id.id)})

在上面的代码中,我正在尝试在浏览的模型中更新一个伙伴,但是名为partner_id的字段是一个many2many字段,我们可以在其中选择多个伙伴。

解决方法

请注意,这仅适用于many2manyone2many,如下所示:

(0,{ values })    link to a new record that needs to be created with the given values dictionary
(1,ID,{ values })    update the linked record with id = ID (write *values* on it)
(2,ID)                remove and delete the linked record with id = ID (calls unlink on ID,that will delete the object completely,and the link to it as well)
(3,ID)                cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
(4,ID)                link to existing record with id = ID (adds a relationship)
(5)                    unlink all (like using (3,ID) for all linked records)
(6,[IDs])          replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)

但是在您的情况下,应该是many2one

def abcde(self):
    rec = self.test_record.id
    res = self.env['anc'].browse(rec)
    res.write({'partner_id':[(4,self.partner_id.id)]}) # you need to add it as list

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...