Python 3.x one2many字段在填充时仅存储最后一条记录
请帮助我了解odoo12中的任何字段。 首先,抱歉语法不好 我正在从account.invoice model的invoice\u line\u id获取产品。 但当我在自定义模型中存储这些产品时,只有最后一条记录存储在类中的one2many字段中。 这是我的密码Python 3.x one2many字段在填充时仅存储最后一条记录,python-3.x,odoo-12,Python 3.x,Odoo 12,请帮助我了解odoo12中的任何字段。 首先,抱歉语法不好 我正在从account.invoice model的invoice\u line\u id获取产品。 但当我在自定义模型中存储这些产品时,只有最后一条记录存储在类中的one2many字段中。 这是我的密码 invoice_report = self.create(vals) product_dict={} product_list=[] for line in ids.invoice_line_ids: product_dic
invoice_report = self.create(vals)
product_dict={}
product_list=[]
for line in ids.invoice_line_ids:
product_dict.update({
'product_name':line.product_id.name,
'qty':line.quantity,
'unit_price':line.price_unit,
'tax':line.invoice_line_tax_ids.name or "",
'subtotal':line.price_subtotal
})
product_list.append([(1,invoice_report.id,product_dict)])
for data in product_list:
invoice_report.write({
'inv_products':data
})
inv_products是我在众多领域中的一员
发票报告是我最近创建的记录。i、 e custom.invoice(1,)根据,您使用的格式将idid
的现有记录更新为values
中的值<代码>id应该是库存产品
记录的id,而不是自定义发票
记录
如果数据库中不存在id等于1
的案例记录,则应收到Odoo服务器错误:
One of the records you are trying to modify has already been deleted (Document type: custom.report.line).
(Records: (1,), User: 2)
您在for循环外部声明了product\u dict
,并在内部使用了update
,在循环结束时,您将重复invoice\u line\u id
的最后一行的值,您要求系统更新特定行(id为invoice\u report.id)调用write
方法时,在每次迭代中使用相同的值
要将新记录添加到库存产品
,请使用[(0,0,值)]
格式:
invoice_report = self.create(vals)
product_list = []
for line in ids.invoice_line_ids:
product_dict = {
}
product_list.append((0, 0, product_dict))
invoice_report.write({
'inv_products': product_list
})
非常感谢,它成功了。很抱歉,我不能投票给你的答案,因为少于15个。