python - 如何通过odoo 10向导中的自定义方法从Many2many字段中删除数据?
问题描述
我有两个视图: 1. 注册表视图 2 更新注册向导视图。型号 : 1 注册 2 会员
我正在使用 Many2many 字段(“成员”)设置注册过程。注册过程后,表单视图上显示一个按钮(更新成员)。单击此按钮时,将出现一个向导窗口,其中显示已注册的成员。在这里,我需要删除一些成员(从向导中列出的成员中)并单击 ApplyChanges 按钮进行更改(调用自定义函数 - ApplyChanges)。最后更改将应用于主要注册模型。我该怎么做?
incoming_member_ids = fields.Many2many("members", String='Incoming Members')
传出成员ids = fields.Many2many(“成员”,字符串='传出成员')
### 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
提供的符号。假设您要对 is 执行操作的记录集records
,man2many 字段是outgoing_member_ids
,要从该关系中删除的 id is outgoing_member_ids[0]
,您必须编写:
records.write({'outgoing_member_ids': [(3, outgoing_member_ids[0])]})
推荐阅读
- java - 如何通过 getName().endsWith() 使用 FileFilter 的方法参考
- c++ - 在函数内部的声明中初始化一个数组并在外部使用它
- javascript - 如何使用javascript递归更新嵌套数组
- ios - Swift:推送视图控制器后,导航栏后面的 UISearchController 错误内容
- java - 将两个给定数组配对并赢得大部分比较的最佳策略
- javascript - 如何在 angularjs 中的 md-datepicker 中手动插入日期而不从日历中选择
- linux - 小猎犬骨板在 uart 上连续打印“c”
- c++ - 如何在 C++ 中获取堆栈跟踪错误异常?
- reactjs - 如何在 React 中更新数组中的状态变量?
- c++ - 如何确认我的 constexpr 表达式实际上已在编译时执行