我正在尝试在one2many字段中写入值。我正在使用Odoo v8。我有一个带有one2many字段的向导。关联了一个按钮,在单击该按钮时,我正在使用write方法将值添加到one2many field.My按钮函数被调用,但它关闭向导而不执行任何操作。我没有收到任何错误或异常。
我的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})]}) 在这方面的任何帮助或指导都将是有帮助的。谢谢
发布于 2019-01-28 17:18:40
您提到您正在使用向导,而使用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)])附注:您没有使用过i,是不是故意的?如果是这样的话,代码可以更短更好:
self.env['your.model'].write({'item_ids':[(0, 0,{'product_id':pID,'quantity':1,'sourceloc_id':sID,'destinationloc_id':dID})]*11)https://stackoverflow.com/questions/50366403
复制相似问题