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

Mah*_*san 3 python odoo

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

id = models.execute_kw(db ,uid ,password ,'res.partner' ,'create' ,[{}]
Run Code Online (Sandbox Code Playgroud)

Vei*_*kko 5

在 Odoo 版本 12(于 2018 年 10 月 3 日发布)中,现在支持在一次 XMLRPC 调用中创建多个对象。在旧版 Odoo 中,它不受支持。新的 Odoo 12 RPC APIexecute_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",
}]])
Run Code Online (Sandbox Code Playgroud)

第一条语句创建一个新模型并返回整数 id,例如 123。第二条语句仅在 Odoo 12 中工作,创建多个新模型并返回 id 列表,例如 [124,125]。请注意后面语法中的两个括号。如果您尝试在旧版 Odoo 中运行后面的语句,它们将引发 AttributeError: 'list' object has no attribute 'get'。

您需要通过以下更改来修改您的代码:

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