使用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]])
相关推荐
qyhua34 分钟前
Windows 平台源码部署 Dify教程(不依赖 Docker)
人工智能·windows·python
一车小面包41 分钟前
Python高级入门Day6
开发语言·python
攻城狮凌霄1 小时前
PHP与ChatGPT结合的技术王炸,开发高效创作小红书内容系统
python
秃然想通1 小时前
Python编程:初入Python魔法世界
python
胡耀超2 小时前
我们如何写好提示词、发挥LLM能力、写作指南:从认知分析到动态构建的思维方法
人工智能·python·学习·大模型·llm·提示词·八要素思维
倔强青铜三2 小时前
Python的Lambda,是神来之笔?还是语法毒瘤?
人工智能·后端·python
倔强青铜三2 小时前
Python之父差点砍掉import!认为模块系统是最大败笔?!
人工智能·python·面试
Dxy12393102163 小时前
Python HTML模块详解:从基础到实战
开发语言·python·html
Johny_Zhao3 小时前
Centos8搭建hadoop高可用集群
linux·hadoop·python·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm
_iop993 小时前
pandas数据清洗
python