如何使用odoo-xml-rpc一次创建多个值到ODOO?

时间:2018-06-03 06:01:44

标签: python odoo

我可以使用以下代码一次创建多个值吗?

id = models.execute_kw(db ,uid ,password ,'res.partner' ,'create' ,[{}]

1 个答案:

答案 0 :(得分:2)

在Odoo版本12(2018-10-03发布)中,现在支持在一个XMLRPC调用中创建多个对象。在较旧的Odoo版本中,它不受支持。新的Odoo 12 RPC API execute_kw create方法既可以用于对象列表,也可以用于单个对象(Python字典)。

https://www.odoo.com/documentation/12.0/webservices/odoo.html的当前文档不是最新的,仅显示旧方法。使用Odoo 12后端,您可以使用以下两种语法:

id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{
    'name': "New Partner",
}])

ids = models.execute_kw(db, uid, password, 'res.partner', 'create', [[{
    'name': "New Partner",
}, {
    'name': "Another New Partner",
}]])

第一个语句创建一个新模型并将id作为整数返回,例如: 123.第二个声明仅适用于Odoo 12并创建多个新模型并返回一个id列表,例如[124125]。请注意后面语法中的两个括号。如果您尝试在较旧的Odoo版本中运行更高版本的语句,它们将引发AttributeError:'list'对象没有属性'get'。

您需要使用以下更改修改代码:

  • 提供模型作为词典列表。
  • 确保模型定义了名称和其他必填字段,否则您将获得“联系人需要名称” - 错误。
  • 添加结束括号“)”。
相关问题