我正在尝试以编程方式合并服务器操作中的一些合作伙伴,而不使用“合并选定的合作伙伴”(这是由odoo本身提供的,必须选择一些合作伙伴进行一些单击,然后合并)。为此,我使用了base.partner.merge.automatic.wizard模型对象,设置了两个字段,partner_ids和dst_partner_id,然后对其调用action_merge()方法。这是我到目前为止在许多方面都尝试过的方法,但它不起作用,我没有得到任何错误。
partner_ids = env['res.partner'].browse([3135,5379])
dst_partner = env['res.partner'].browse(5379)
merge = env['base.partner.merge.automatic.wizard'].create({
'partner_ids': partner_ids,
'dst_partner_id': dst_partner[0].id,
})
merge.action_merge()(出于测试目的,选择了2个静态ids )
github上的MergePartnerAutomatic(model.TransientModel)源代码。
发布于 2019-08-21 16:00:35
简而言之: One2many字段使用一种特殊的语法。因此,使用'partner_ids': [(6,0,partner_ids.ids)],
partner_ids = env['res.partner'].browse([3135,5379])
dst_partner = env['res.partner'].browse(5379)
merge = env['base.partner.merge.automatic.wizard'].create({
'partner_ids': [(6,0,partner_ids.ids)],
'dst_partner_id': dst_partner[0].id,
})
merge.action_merge()长篇答案:
One2many和Many2many使用一种特殊的“命令”格式来操作存储在字段中/与字段关联的一组记录。
此格式是顺序执行的三元组的列表,其中每个三元组是在记录集上执行的命令。并非所有命令都适用于所有情况。可能的命令包括:
参考:https://www.odoo.com/documentation/12.0/reference/orm.html#relational-fields上的Odoo ORM文档
https://stackoverflow.com/questions/57447871
复制相似问题