无意中发现了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方便不少。