如何在odoo 10中通过向导中的自定义方法从Many2many字段中删除数据?

时间:2019-01-17 19:26:27

标签: python postgresql odoo

我有两种看法: 1.登记表视图 2更新注册向导视图。 楷模 : 1注册 2个成员

我正在使用Many2many字段(“成员”)设置注册过程。 注册过程完成后,在窗体视图上显示一个按钮(更新成员)。 单击此按钮时,将显示一个向导窗口,其中显示已注册成员。 在这里,我需要删除一些成员(从向导中列出的成员),然后单击ApplyChanges按钮进行更改(调用自定义功能-ApplyChanges)。最后更改将应用​​于主要的Registrations模型。我该怎么做?

incoming_member_ids = fields.Many2many("members", String='Incoming Members')

outgoing_member_ids =字段。Many2many(“ members”,String ='Outgoing Members')

### incoming members list
if x.action_type == 'incoming_members':
   for incoming_partner in x.incoming_members_ids:
      incoming_member_ids.append(incoming_member.id)
      if not incoming_member_ids:
        continue
      self.env['registered.members'].create({
     'member_ids': incoming_member_ids[0],
     })
     incoming_member_ids.remove(incoming_member_ids[0])
   return True
  ### Outgoing members list  
 elif x.action_type == 'outgoing_members':                   
    for outgoinging_member in res.outgoing_member_ids:
        outgoing_member_ids.append(outgoinging_member.id)
        if not outgoing_member_ids:
           continue
      self.env['registered.members'].create({
     'member_ids': outgoing_member_ids[0],
     })    
     outgoing_member_ids.remove(outgoing_member_ids[0])
   return True

1 个答案:

答案 0 :(得分:0)

要从man2many字段中删除特定ID的关系,必须在该字段上使用odoo提供的符号。假设您要对其执行操作的记录集为records,man2many字段为outgoing_member_ids,要从该关系中删除的id为outgoing_member_ids[0],则必须编写:

records.write({'outgoing_member_ids': [(3, outgoing_member_ids[0])]})