这是一个非常简单但很难回答的问题,因为我认为只有“少数”人会处理这个问题。
我在 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
它应该在 OpenERP 数据库中找到名称为“my_product”的所有产品,但它没有。我知道为什么:
我不在说英语的国家,所以我在 OpenERP 中安装了一种语言,xmlrpc 的“搜索”正在寻找名称为“my_product”但只有英文的产品。问题是显然没有保存翻译名称的字段......它似乎也是“名称”!因此,如果我用我的语言指定产品名称,我将找不到产品。
世界上有人遇到过同样的问题吗?
编辑
好的,我有一个线索:如果我不做“搜索”,而是“阅读”:
product_names = sock.execute(dbname, uid, pwd, 'product.product', 'read', ids, ['name'], {'lang': 'es_ES'})
这样我就可以指定语言并且它可以工作!但是我不能对“搜索”做同样的事情,我会出错。谁知道路???
新编辑
context = {'lang': 'es_ES'}
args = [('name', 'ilike', 'my_product')] # consulta
ids = sock.execute(dbname, uid, pwd, 'product.product', 'search', args, context)