odoo中one2many的那些事[乐乐独记]

一、创建数据

1、直接创建

直接在字段后面去添加创建

values1 = {
   'name': 'zhangsan',
    'company_id': 6,
}
values2 = {
    'name': 'zhaoliu',
    'company_id': 5,
}
self.current_one2many_ids = [(0, 0, values1),(0, 0, values2)...]

2、先创建后赋值

先为此字段的关系表去创建两条记录,例如表名relationship_table
借用一下上面的values1、values2

步骤:
1、先在关系模型中去创建需要的数据
2、创建的同时取出它们的id,放在一个列表中
3、将存放id的列表直接赋给one2many字段

values = [values1,values2]
all_head_ids = []
for rec in values:
	res = self.env['relationship.table'].create(rec)
	all_head_ids.append(res.id) 
# 返回一个头id列表给one2many字段
self.current_one2many_ids = all_head_ids 

或者下面这种方式:

for rec in values:
	self.current_one2many_ids += 
	self.env['cms.marketing.tracking.line'].new(rec)

二、更新数据

@api.multi
def write(self, vals):
	# distribute_line_ids是一个one2many字段,修改它的第一条数据
    vals['distribute_line_ids'] = [(1,self.distribute_line_ids[0].id,{'company_active':True})]
    return super(ResPartnerDistribution, self).write(vals)

三、删除数据

@api.multi
def write(self, vals):
	# distribute_line_ids是一个one2many字段,删除它的第一条数据
    vals['distribute_line_ids'] = [(2,self.distribute_line_ids[0].id)]
    return super(CmsBaseDataResPartnerDistribution, self).write(vals)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值