odoo 应用管理 xmlrpc 方式操作

前置准备: 导入openerplib[1]

# 连接信息
ACCOUNT = {
    "HOST": "localhost",
    "PORT": 8069,
    "DB": "demo",
    "USER": "admin"
    "PASS": "123456",
}
  • 连接/登录
def acc_connection(acc):
    connection = openerplib.get_connection(hostname=acc['HOST'],
                                           port=acc['PORT'],
                                           database=acc['DB'],
                                           login=acc['USER'],
                                           password=acc['PASS'])
    connection.check_login()
    return connection
  • 更新应用列表
conn = acc_connection(ACCOUNT)
module = conn.get_model('ir.module.module')
module.update_list()  # 刷新本地应用列表
# 参考 odoo/addons/base/module/module.py 597行
  • 安装应用(安装之前一定要先执行更新应用列表的方法)
conn = acc_connection(ACCOUNT)
module = conn.get_model('ir.module.module')
model = module.search([('name', '=', 'xxxx')])  # xxxx 为需要安装的模块文件夹名称
module.button_immediate_install(model[0])  # 安装应用
# 参考 odoo/addons/base/module/module.py 403行
  • 更新模块
conn = acc_connection(ACCOUNT)
module = conn.get_model('ir.module.module')
model = module.search([('name', '=', 'xxxx')])  # xxxx 为需要升级的模块文件夹名称
module.button_immediate_upgrade(model[0])  # 更新应用
# 参考 odoo/addons/base/module/module.py 522行
  • 卸载模块
conn = acc_connection(ACCOUNT)
module = conn.get_model('ir.module.module')
model = module.search([('name', '=', 'xxxx')])  # xxxx 为需要卸载的模块文件夹名称
module.button_immediate_uninstall(model[0])  # 卸载应用
# 参考 odoo/addons/base/module/module.py 501行

  1. openerplib 是odoo官方社区给出的xmlrpc方式连接odoo的包参考github库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容