Odoo 10 - 通过 XMLRPC 添加订单行
Odoo 10 - Add order line via XMLRPC
我正在尝试通过 XMLRPC 向现有销售订单添加订单行
我正在尝试这个:
r = api.execute_kw(db, uid, pwd, 'sale.order', 'write', [[sc]], { 'order_line': (0, '_', {'product_id': id, 'product_uom_qty': qty}) })
其中id
、qty
为整数,sc
为销售订单ID
的整数
我收到这个错误:
Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/lib/python2.7/dist-packages/odoo/service/wsgi_server.py", line 56, in xmlrpc_return\n result = odoo.http.dispatch_rpc(service, method, params)\n File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 118, in dispatch_rpc\n result = dispatch(method, params)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 38, in dispatch\n res = fn(db, uid, *params)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 157, in execute_kw\n return execute(db, uid, obj, method, *args, **kw or {})\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 101, in wrapper\n return f(dbname, *args, **kwargs)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 164, in execute\n res = execute_cr(cr, uid, obj, method, *args, **kw)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 153, in execute_cr\n return odoo.api.call_kw(recs, method, args, kw)\n File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 689, in call_kw\n return call_kw_multi(method, model, args, kwargs)\n File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 680, in call_kw_multi\n result = method(recs, *args, **kwargs)\nTypeError: write() got an unexpected keyword argument \'order_line\'\n'>
您传递给该字段的值的格式不正确。它应该是一个 元组列表 而不是一个元组。
尝试将以下值传递给它。
{ 'order_line': [(0, '_', {'product_id': id, 'product_uom_qty': qty})]}
希望它能解决您面临的问题。
我看到这里有两个错误。 Sanaullah Khan 已经指出了一个:one2many
或 many2many
字段上的写入必须是 "triplets".
的列表
你的电话不正确。您在通话中使用 args
和 kwargs
。 write()
的值参数不是关键字 argument/parameter。所以把它放到 args
:
r = api.execute_kw(
db, uid, pwd, 'sale.order', 'write',
[[sc], {'order_line': \ # args
[(0, '_', {'product_id': id, 'product_uom_qty': qty})]}],
{}) # kwargs
我正在尝试通过 XMLRPC 向现有销售订单添加订单行
我正在尝试这个:
r = api.execute_kw(db, uid, pwd, 'sale.order', 'write', [[sc]], { 'order_line': (0, '_', {'product_id': id, 'product_uom_qty': qty}) })
其中id
、qty
为整数,sc
为销售订单ID
的整数
我收到这个错误:
Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/lib/python2.7/dist-packages/odoo/service/wsgi_server.py", line 56, in xmlrpc_return\n result = odoo.http.dispatch_rpc(service, method, params)\n File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 118, in dispatch_rpc\n result = dispatch(method, params)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 38, in dispatch\n res = fn(db, uid, *params)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 157, in execute_kw\n return execute(db, uid, obj, method, *args, **kw or {})\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 101, in wrapper\n return f(dbname, *args, **kwargs)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 164, in execute\n res = execute_cr(cr, uid, obj, method, *args, **kw)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 153, in execute_cr\n return odoo.api.call_kw(recs, method, args, kw)\n File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 689, in call_kw\n return call_kw_multi(method, model, args, kwargs)\n File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 680, in call_kw_multi\n result = method(recs, *args, **kwargs)\nTypeError: write() got an unexpected keyword argument \'order_line\'\n'>
您传递给该字段的值的格式不正确。它应该是一个 元组列表 而不是一个元组。
尝试将以下值传递给它。
{ 'order_line': [(0, '_', {'product_id': id, 'product_uom_qty': qty})]}
希望它能解决您面临的问题。
我看到这里有两个错误。 Sanaullah Khan 已经指出了一个:one2many
或 many2many
字段上的写入必须是 "triplets".
你的电话不正确。您在通话中使用 args
和 kwargs
。 write()
的值参数不是关键字 argument/parameter。所以把它放到 args
:
r = api.execute_kw(
db, uid, pwd, 'sale.order', 'write',
[[sc], {'order_line': \ # args
[(0, '_', {'product_id': id, 'product_uom_qty': qty})]}],
{}) # kwargs