odoo XMLRPC 新庫 OdooRPC 嚐鮮

無心中發現了python竟然有了OdoRPC的庫,驚喜之下趕忙嘗試一番,比XMLRPC簡潔了很多,機制看樣子是利用的JsonRPC。python

#原文出自KevinKong的博客http://www.cnblogs.com/kfx2007/ 轉載不註明出處的沒有小雞雞。url

首先,去這裏下載 odoorpc 。(看不見鏈接的,說明你讀的不是原文哦)spa

解壓下載的文件,並使用 setup.py install安裝。excel

接下來寫個Demo腳本 讀取Excel並導入到目標庫中。code

#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方便很多。server

相關文章
相關標籤/搜索