• 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方便不少。

  • 相关阅读:
    19、spring注解学习(声明式事务)——spring注解版声明式事务
    Visual C# 2015调用SnmpSharpNet库实现简单的SNMP元素查询
    SNMP协议交互学习-获取udp的udpindatagrams
    LwIP的SNMP学习笔记
    stm32f407使用Keil uV5建立工程日志
    IP unnumbered interface,某个接口不编号,某个接口不分配IP地址
    OSPFv3与OSPFv2协议的比较
    卫星网络-拓扑优化-文献笔记
    卫星轨道相关笔记SGP4
    [20190226]删除tab$记录的恢复6.txt
  • 原文地址:https://www.cnblogs.com/kfx2007/p/5995622.html
Copyright © 2020-2023  润新知