使用xmlrpc连接操作odoo

使用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]])
相关推荐
喵手12 分钟前
Python爬虫实战:增量爬虫实战 - 利用 HTTP 缓存机制实现“极致减负”(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·增量爬虫·http缓存机制·极致减负
一个处女座的程序猿O(∩_∩)O30 分钟前
Python异常处理完全指南:KeyError、TypeError、ValueError深度解析
开发语言·python
was17232 分钟前
使用 Python 脚本一键上传图片到兰空图床并自动复制链接
python·api上传·自建图床·一键脚本
好学且牛逼的马1 小时前
从“Oak”到“虚拟线程”:JDK 1.0到25演进全记录与核心知识点详解a
java·开发语言·python
shangjian0071 小时前
Python基础-环境安装-Anaconda配置虚拟环境
开发语言·python
codeJinger1 小时前
【Python】函数
开发语言·python
geovindu2 小时前
python: Command Pattern
开发语言·python·命令模式
曲幽2 小时前
FastAPI实战:WebSocket长连接保持与心跳机制,从入门到填坑
javascript·python·websocket·keep-alive·fastapi·heartbeat·connection
好学且牛逼的马3 小时前
从“混沌初开”到“有序统一”:Java集合框架发展历程与核心知识点详解
前端·数据库·python
a1117764 小时前
快速制作 虚拟形象项目 MotionPNGTuber
python·live2d