我有销售记录
models.execute_kw(db, uid, password, 'sale.order', 'create', [{
'partner_id': 10,
'order_line': [(0, 0, {'product_id':1,'product_uom_qty':2}),
我需要能够根据变量中的数字创建'order_line'程序。例如if variable = 3
models.execute_kw(db, uid, password, 'sale.order', 'create', [{
'partner_id': 10,
'order_line': [(0, 0, {'product_id':1,'product_uom_qty':2}),
'order_line': [(0, 0, {'product_id':1,'product_uom_qty':2}),
'order_line': [(0, 0, {'product_id':1,'product_uom_qty':2}),
我从这里进行了准确的操作,https://www.odoo.com/forum/help-1/question/programmatically-create-a-sale-order-line-99981。但是我一直在出错,因为自2016年以来Odoo似乎已经发生了很大变化。解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
在第二个示例中,您在提供订单行的值时忘记了右括号,而当您写三遍order_line
时,只提供了最后一个值就等于了。
如果需要创建三行,则需要使用special commands在列表中传递三个元组。
以下示例将创建一条具有三行相同的销售订单:
models.execute_kw(DB, uid, PASSWORD, 'sale.order', 'create', [{
'partner_id': 10,
'order_line': [(0, 0, {'product_id':1,'product_uom_qty':2}),
(0, 0, {'product_id':1,'product_uom_qty':2}),
(0, 0, {'product_id':1,'product_uom_qty':2})
]
}])