使用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]])
相关推荐
测试者家园41 分钟前
安装Python和配置开发环境
开发语言·软件测试·人工智能·python·职场和发展·零基础·质量效能
仙人掌_lz1 小时前
理解多智能体深度确定性策略梯度MADDPG算法:基于python从零实现
python·算法·强化学习·策略梯度·rl
HsuHeinrich1 小时前
利用散点图探索宇航员特征与太空任务之间的关系
python·数据可视化
陌尘(MoCheeen)1 小时前
技术书籍推荐(002)
java·javascript·c++·python·go
满怀10151 小时前
【人工智能核心技术全景解读】从机器学习到深度学习实战
人工智能·python·深度学习·机器学习·tensorflow
乐言3611 小时前
Jmeter中的BeanShell如何使用?
python·jmeter·压力测试
MaisieKim_2 小时前
python与nodejs哪个性能高
前端·python·node.js
林鸿风采2 小时前
内网服务器之间传输单个大文件最佳解决方案
linux·python·文件传输
森叶2 小时前
从 JIT 即时编译一直讲到CGI|FastGGI|WSGI|ASGI四种协议的实现细节
python·php·web
weixin_307779132 小时前
使用FastAPI微服务在AWS EKS中构建上下文增强型AI问答系统
人工智能·python·云计算·fastapi·aws