在OpenERP中以本地语言获取产品名称?

for*_*vas 3 python xmlrpclib odoo

这是一个非常简单但难以回答的问题,因为我认为只有"少数"人才能解决这个问题.

我在Python中有这个简单的脚本:

import xmlrpclib

username = 'my_openerp_user'
pwd = 'my_password'
dbname = 'my_openerp_database'

sock = xmlrpclib.ServerProxy('http://localhost:8063/xmlrpc/common')
uid = sock.login(dbname, username, pwd)
sock = xmlrpclib.ServerProxy('http://localhost:8063/xmlrpc/object')

args = [('name', 'ilike', 'my_product')]
ids = sock.execute(dbname, uid, pwd, 'product.product', 'search', args)

print ids
Run Code Online (Sandbox Code Playgroud)

它应该在OpenERP数据库中找到名为"my_product"的所有产品,但事实并非如此.我知道为什么:

我不在一个谈论英语的国家,所以我在OpenERP中安装了一种语言,而xmlrpc的'搜索'正在寻找名为'my_product'的产品,但只有英文版.问题是显然没有一个字段来保存翻译的名称......它似乎也是"名字"!如果我用我的语言指定他们的名字,我找不到产品.

世界上任何人都有同样的问题吗?

编辑

好的,我有一个线索:如果不是'搜索',我会'读':

product_names = sock.execute(dbname, uid, pwd, 'product.product', 'read', ids, ['name'], {'lang': 'es_ES'})
Run Code Online (Sandbox Code Playgroud)

这样我可以指定语言,它的工作原理!但我不能用'搜索'做同样的事情,我得到错误.谁知道的方式???

新编辑

context = {'lang': 'es_ES'}

args = [('name', 'ilike', 'my_product')]  # consulta

ids = sock.execute(dbname, uid, pwd, 'product.product', 'search', args, context)
Run Code Online (Sandbox Code Playgroud)

Luk*_*ala 5

我几乎可以肯定,如果你通过它应该工作langcontext.

例如:context = {'lang': u'pl_PL'}.

如果它不起作用,您应该尝试覆盖name_search方法.