我正在尝试在one2many字段中写入值。我正在使用Odoo v8。我有一个带有one2many字段的向导。一个按钮关联,单击按钮我使用write方法将值添加到one2many字段。我正在调用按钮功能,但它关闭向导而不做任何事情。我没有得到任何错误或异常。
我的XML代码如下:
<button name="split_qty" type="object" string="Split" class="oe_highlight"/>
我的python代码如下:
for i in range(1,11):
self.write({'item_ids':[(0, 0, {'product_id':pID,'quantity ':1, 'sourceloc_id':sID,'destinationloc_id':dID})]})
任何有关此方面的帮助或指导都会有所帮助。感谢
答案 0 :(得分:0)
您提到您正在使用向导,而使用self.write
则意味着您正在更改向导数据而不是主要模型。我想这是问题所在。
您应该改用self.env[target model].write
。
此外,在循环中调用write方法也不是一个好习惯,而是使用以下方法:
recs=[]
for i in range(1,11):
recs.append((0, 0,{'product_id':pID,'quantity':1,'sourceloc_id':sID,'destinationloc_id':dID})]})
self.env['your.model'].write({'item_ids':recs)
或更短的类似python的版本:
self.env['your.model'].write({'item_ids':[(0, 0,{'product_id':pID,'quantity':1,'sourceloc_id':sID,'destinationloc_id':dID}) for i in range(1,11)])
p.s。您没有使用过i
,这是故意的吗?如果是这样,代码可以更短,更好:
self.env['your.model'].write({'item_ids':[(0, 0,{'product_id':pID,'quantity':1,'sourceloc_id':sID,'destinationloc_id':dID})]*11)