使用xmlrpc.client
库连接到Odoo是一种常用的方式,尤其是在需要从外部系统操作Odoo(例如,读取数据、创建记录等)时。以下是使用xmlrpc.client
连接到Odoo的具体步骤,以及一些常用方法的示例。
步骤1:导入xmlrpc.client
python
import xmlrpc.client
步骤2:设置连接信息
你需要提供Odoo服务器的URL、数据库名称、用户名和密码。
python
url = "http://localhost:8069"
db = "odoo_db"
username = "admin"
password = "admin"
步骤3:获取通用登录接口(common)的代理对象
python
common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))
步骤4:认证
使用用户名和密码进行认证,获取用户的UID。这是后续操作的关键。
python
uid = common.authenticate(db, username, password, {})
步骤5:获取对象(models)的代理对象
python
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))
方法示例:
下面是一些使用xmlrpc.client
操作Odoo的方法示例。
1. 检查版本
获取Odoo服务器的版本信息。
python
version = common.version()
print(version)
2. 创建记录
向Odoo中添加一条新记录。
python
id = models.execute_kw(db, uid, password,
'res.partner', 'create',
[{
'name': "New Partner",
}])
print(id)
3. 读取记录
读取特定ID的记录的信息。
python
records = models.execute_kw(db, uid, password,
'res.partner', 'read',
[[id]], {'fields': ['name', 'country_id', 'comment']})
print(records)
4. 搜索记录
根据条件搜索记录。
python
ids = models.execute_kw(db, uid, password,
'res.partner', 'search',
[[['is_company', '=', True], ['customer', '=', True]]],
{'limit': 1})
print(ids)
5. 更新记录
更新一条记录的信息。
python
models.execute_kw(db, uid, password, 'res.partner', 'write', [[id], {
'name': "Updated Partner"
}])
6. 删除记录
删除一条记录。
python
models.execute_kw(db, uid, password, 'res.partner', 'unlink', [[id]])