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

标签 python postgresql odoo

我有两种看法: 1.注册表查看 2 更新注册向导 View 。 楷模 : 1 注册 2个成员

我正在设置一个包含 Many2many 字段(“成员”)的注册过程。 注册过程后,一个按钮(更新成员)显示在表单 View 上。 单击此按钮时会出现一个向导窗口,其中显示了注册成员(member)。 在这里我需要删除一些成员(从向导中列出的成员)并单击 ApplyChanges 按钮进行更改(调用自定义函数 - ApplyChanges)。 atlast 更改将应用​​于主要注册模型。我该怎么做??

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

outgoing_member_ids = fields.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

最佳答案

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

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

关于python - 如何通过 odoo 10 向导中的自定义方法从 Many2many 字段中删除数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54242962/

相关文章:

python - 如何实现 C++ api 到 Python 的通用适配器(如 Boost.Python 那样)?

python - 当 uwsgi 重新加载到 flask 中时保留全局数据

java - 为什么需要数据库代理键的 generatedKeys?

postgresql - 使用 %TYPE 在 PostgreSQL 中声明复合类型的变量

python - 重写 api.onchange 方法

Odoo-如何使用一个类添加多个 View

python - 输入文件名作为字符串并返回字典

java - 在 Hibernate 中映射 byte[] 并逐 block 添加文件

odoo - 从向导运行报告

python - Pyccuracy selenium-server.jar 有 22 个字节?