【问题标题】:Odoo 10 - Add order line via XMLRPCOdoo 10 - 通过 XMLRPC 添加订单行
【发布时间】:2018-04-09 09:18:18
【问题描述】:

我正在尝试通过 XMLRPC 向现有销售订单添加订单行

我正在尝试这个:

r = api.execute_kw(db, uid, pwd, 'sale.order', 'write',  [[sc]], { 'order_line': (0, '_', {'product_id': id, 'product_uom_qty': qty}) })

其中idqty 是整数,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'>

【问题讨论】:

    标签: odoo xml-rpc odoo-10


    【解决方案1】:

    我在这里看到两个错误。 Sanaullah Khan 已经指出了一个问题:one2manymany2many 字段上的写入必须是“三元组”列表。

    而且你的电话不正确。您在通话中使用argskwargswrite() 的 values 参数不是关键字参数/参数。所以把它放到args

    r = api.execute_kw(
        db, uid, pwd, 'sale.order', 'write', 
        [[sc], {'order_line': \  # args
            [(0, '_', {'product_id': id, 'product_uom_qty': qty})]}],
        {})  # kwargs
    

    【讨论】:

      【解决方案2】:

      您传递给该字段的值的格式不正确。它应该是一个元组列表,而不仅仅是一个元组。

      尝试将以下值传递给它。

      { 'order_line': [(0, '_', {'product_id': id, 'product_uom_qty': qty})]}
      

      希望它能解决您面临的问题。

      【讨论】:

        猜你喜欢
        • 2017-07-22
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多