Loading

odoo XMLRPC 新库 OdooRPC 尝鲜

无意中发现了python居然有了OdoRPC的库,惊喜之下赶紧尝试一番,比XMLRPC简洁了不少,机制看样子是利用的JsonRPC。

#原文出自KevinKong的博客http://www.cnblogs.com/kfx2007/ 转载不注明出处的没有小鸡鸡。

首先,去这里下载 odoorpc 。(看不见连接的,说明你读的不是原文哦)

解压下载的文件,并使用 setup.py install安装。

接下来写个Demo脚本 读取Excel并导入到目标库中。

#coding:utf-8

import odoorpc
import xlrd,base64

#user password 
db = 'test'
user ='admin'
passwd = 'admin'

#connection to odoo server
odoo = odoorpc.ODOO('your server url',port='8069')

print 'logining...'
odoo.login(db,user,passwd)

print u'原文地址:cnblogs.com/kfx2007...'

user = odoo.env.user

print 'current user:%s'%user.name

print 'reading from excel file...'
excel = xlrd.open_workbook('123.xls')
sheet = excel.sheets()[0]

for row in range(1,sheet.nrows):
    default_code = sheet.cell(row,0).value
    name = sheet.cell(row,1).value
    uom_id = 1
    list_price = sheet.cell(row,3).value
    type = 'product'
    sale_ok = True
    route_ids = [(4,6)]
    track_all =True
    sale_delay = 0
    produce_delay = 0

    val = {
        'default_code':default_code,
        'name':name,
        'uom_id':uom_id,
        'list_price':list_price,
        'type':type,
        'sale_ok':sale_ok,
        'route_ids':route_ids,
        'track_all':track_all,
        'sale_delay':sale_delay,
        'produce_delay':produce_delay,
        #'categ_id':599,
    }

    #get product template obj
    product_template_obj = odoo.env['product.template']
    products= product_template_obj.search([('name','=',name)])
    if len(products):
        #print products[0]
        product = product_template_obj.browse(products[0])
        if not product_template_obj.browse(products[0]).default_code or 'JY' in product_template_obj.browse(products[0]).default_code:
            print 'changing product:%s code...'%product.id
            product.defautl_code = default_code
            print product.default_code
        print 'product exists,skip...'
        continue
    #craete new product
    print 'creating product:%s'%name
    print 'autor:kevinkong(kfx2007@163.com)'
    product_template_obj.create(val)

"odoorpctest.py" 65L, 1720C

相比之下,比xmlrpc方便不少。

posted @ 2016-10-25 10:09  青岛欧姆网络科技  阅读(2908)  评论(0编辑  收藏  举报