更改 Odoo XmlRPC 上下文以使用特定语言

Alter Odoo XmlRPC context to use a specific language

我需要使用 XMLRPC 从 odoo 获取特定语言的翻译数据 默认情况下,odoo 以默认语言即英语发送数据

api.execute_kw(db, uid, pwd, 'res.country', 'search_read', [[]], {'fields': ['name']})

如何为此请求添加上下文以使用特定的翻译语言。

假设终点是 api 您只需要添加参数上下文,如以下代码所示

api.execute_kw(db, uid, pwd, 'res.country', 'search_read', [[]], {'fields': ['id', 'name'], 'context' :{'lang': "fr_FR"}})

这里我列出了 xmlrpc(Odoo Web 服务 API) 常见 ORM 方法的一些示例语法,用于将上下文添加为参数。

创建

api.execute_kw(db, uid, password, 'res.partner', 'create', [{'name: Atul'}], {'context' :{'tag': 1}})

搜索

api.execute_kw(db, uid, pwd, 'res.partner', 'search_read', [[('name', '=', "Atul")]], {'context' :{'tag': 1}})

搜索阅读

api.execute_kw(db, uid, pwd, 'res.partner', 'search_read', [[('name', '=', "Atul")]], {'fields': ['id', 'name'], 'context' :{'tag': 1}})

阅读

api.execute_kw(db, uid, password, 'res.partner', 'read', [ids], {'context' :{'tag': 1}})

api.execute_kw(db, uid, password, 'res.partner', 'write', [[id], {'name': "Atul Arvind"}], {'context' :{'tag': 1}})

取消链接

api.execute_kw(db, uid, password, 'res.partner', 'unlink', [[id]], {'context' :{'tag': 1})

希望对您有所帮助!

要完成@karara-mohamed 的回答,这里是完整的 JSON-RPC API 调用 (/jsonrpc):

{
    "jsonrpc": "2.0",
    "method": "call",
    "params": {
        "service": "object",
        "method": "execute_kw",
        "args": [
            "<database-name>",
            <user_id>,
            "<user_password>",
            "product.product",
            "search_read",
            [
                [
                   ["type", "=", "product"]
                ]
            ],
            {
                "fields": ["id", "name", "display_name"],
                "context": {
                    "lang": "fr_FR"
                },
                "limit": 5
            }
        ]
    },
    "id": <idRequest>
}