#odoo

Odoo 的前身是 OpenERP,是一个开源的企业 ERP 系统。odoo官网

通过官网可以看到odoo可以干很多事情,例如销售、CRM等等。

#odoo文档

我们可以在odoo文档看到用户手册、开发者文档、API、安装说明、白皮书、法律文件。

由于我们要对odoo进行二次开发,则我们需要访问API文档。

#Web Service API

在odoo文档-API部分,我们将会访问的是web Service API,通过该文档,我们可以了解到,odoo的API通信方式,是通过xmlrpc方式进行远程调用。

#测试代码

# encoding=utf8

import xmlrpclib

# Connection

url = "https://demo.odoo.com"

db = ""

username = "admin"

password = "admin"

# 通过demo服务器的start函数获取,实际测试的服务器的url,db,username,password

info = xmlrpclib.ServerProxy('https://demo.odoo.com/start').start()

url, db, username, password = info['host'], info['database'], info['user'], info['password']

print "[url]:" + url

print "[db]:" + db

print "[username]:" + username

print "[password]:" + password

# Logging

common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))

print "Method version:" + str(common.version())

uid = common.authenticate(db, username, password, {})

# print "[uid]:" + str(uid)

# # Calling methods

models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))

result = models.execute_kw(db, uid, password,

'res.partner', 'check_access_rights',

['read'], {'raise_exception': False})

print result

# Create records

id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{

'name': "中文测试",

}])

print "[id]:" + str(id)

[record] = models.execute_kw(db, uid, password,

'res.partner', 'read', [id])

print record

#形成类

20160816添加测试类

##测试类

from unittest import TestCase

import datetime

from OdooServerApi import OdooServerApi

class TestOdooServerApi(TestCase):

def test_get_uid(self):

print "test_get_uid"

server = OdooServerApi()

print "[uid]:" + str(server.get_uid())

pass

def test_get_mac_address(self):

server = OdooServerApi()

print "[mac_address]:" + str(server.get_mac_address())

pass

def test_update(self):

start_time = datetime.datetime.now() - datetime.timedelta(hours=8)

print start_time

end_time = start_time + datetime.timedelta(hours=10)

print end_time

server = OdooServerApi()

server.update(start_time,end_time)

pass

##OdooServerApi类

import uuid

import xmlrpclib

class OdooServerApi:

url = "http://192.168.1.120:8069"

db = "Workload Account"

username = "testimporter@test.test"

password = "123456"

uid = None

mac_address = None

def __init__(self, url=None,db=None,username=None,password=None):

if url is not None:

self.url = url

if db is not None:

self.db = db

if username is not None:

self.username = username

if password is not None:

self.password = password

def get_uid(self):

common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(self.url))

print "Method version:" + str(common.version())

uid = common.authenticate(self.db, self.username, self.password, {})

print "[uid]:" + str(uid)

self.uid = uid

return self.uid

def get_mac_address(self):

mac = uuid.UUID(int=uuid.getnode()).hex[-12:]

self.mac_address = ":".join([mac[e:e+2] for e in range(0,11,2)])

return self.mac_address

def update(self, start_time, end_time, mac_address=None,uid=None):

if uid is None:

self.get_uid()

if mac_address is None:

self.get_mac_address()

models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(self.url))

models.execute_kw(self.db, self.uid, self.password, 'workload_account.raw_data', 'create', [{

'mac_address': self.mac_address,

'start_time': str(start_time),

'end_time': str(end_time)

}])

python二次开发odoo_odoo二次开发 - 战鹏的Blog - OSCHINA - 中文开源技术交流社区相关推荐

  1. python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...

    python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...

  2. python蓝牙上位机开发_python做上位机 - osc_2frv0wjp的个人空间 - OSCHINA - 中文开源技术交流社区...

    参考文章: https://blog.csdn.net/dgut_guangdian/article/details/78391270 https://www.cnblogs.com/lanceyu/ ...

  3. java开源笔记软件下载_开发常用软件笔记 - ZhaoQian's Blog - OSCHINA - 中文开源技术交流社区...

    notepad++ 使用快捷键Ctrl+H打开"替换对话框",在每行的开头添加内容. 勾选左下角的"正则表达式"选项 在"查找目标"里输入上 ...

  4. 华为路由器用Linux开发,华为路由器常用配置 - osc_1v2pb1nt的个人空间 - OSCHINA - 中文开源技术交流社区...

    该设备有   2个光口.8个电口 Interface                         IP Address/Mask      Physical   Protocol GigabitE ...

  5. python羊车门问题_羊车门问题 - osc_wq8j2a9a的个人空间 - OSCHINA - 中文开源技术交流社区...

    题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...

  6. python 点云重建,点云 表面重建 - osc_0tk7cpde的个人空间 - OSCHINA - 中文开源技术交流社区...

    啊哈 最近在参加一个数学建模的比赛 要求是对一个果子里面的虫洞进行三维模型重建 但是百度之后并没有找到对点云数据直接重建的方法(很少) 整个代码是python写的 里面的各种库似乎有一个是可以做这个的 ...

  7. python倒排索引实现_倒排索引原理和实现 - uncle_LLD的个人空间 - OSCHINA - 中文开源技术交流社区...

    关于倒排索引 搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档.怎么快速找到包含某个关键词的文档就成为搜索的关键.这里我们借助单词--文档矩阵模型,通过这个模型我们可以很方便知道某篇文档 ...

  8. python 博客程序_项目1——博客系统 - Python测试和开发 - OSCHINA - 中文开源技术交流社区...

    一.绪言 今天又来更新博文了,学习Java也已经有一段时间了,经过这段时间的学习,我对Java有了更深一层的理解.从刚开始的HelloWorld到了现在的小型网页项目,这中间也经历了很多.话不多说,下 ...

  9. python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...

    mqant mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即 ...

最新文章

  1. CVPR2021深度框架训练:不是所有数据增强都可以提升最终精度
  2. 通过mem函数在MicroPython中访问模块寄存器
  3. docker 删除所有容器和镜像的命令
  4. java中事物的注解_编程式事务、XML配置事务、注解实现事务
  5. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波
  6. 从17 个方面对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 等分布式消息队列
  7. CFS完全公平调度类
  8. Idea编写简单Java网络爬虫程序(maven)
  9. c语言bmp图片读取融合保存,BMP_READ_WRITE 完全用C语言实现BMP图像的读取和保存 - 下载 - 搜珍网...
  10. 服务器数据恢复成功案例+服务器数据恢复 原理
  11. Java日志体系(三) jul 配置文件详解,日志示例
  12. MyRolan (快速启动小工具)
  13. Matplotlib中画图,使用带有边框的条线
  14. Python全栈 Web(前端三剑客之JavaScript 从小白鼠到武林盟主)
  15. Cesium for Unreal 数据加载 场景漫游 粒子效果 视频监控 VR预览
  16. 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档)
  17. https://www.toutiao.com/a6457425756212429325/?tt_from=mobile_qqutm_campaign=client_shareapp=news_a
  18. 3、Qt5 主窗口点击按钮 弹出另一个自定义窗口
  19. Java面试题:数据库优化策略有哪些?
  20. 20190625 前端开发日报

热门文章

  1. android 自定义 对号,Android自定义View实现打钩动画功能
  2. pdo mysql 事务_PHP PDO对象如何确定它是否已经存在于MySQL事务中?
  3. android 动画后的位置,Android:Comp之后会重置动画位置
  4. python考试pass or fail_Pytest官方教程-12-skip及xfail: 处理不能成功的测试用例
  5. gnuplot画图命令_Gnuplot科学绘图(二十六)——image 绘图
  6. linux基础命令怎么记,linux基础命令--笔记(示例代码)
  7. socket python udp_python-socket UDP
  8. 创意美食海报psd分层模板,开启奇思妙想
  9. 设计资源 | 万圣节矢量图标
  10. 【乐理知识】第二章 音符 休止符