【问题标题】:How to write Image file into binary field of OpenERP using API如何使用 API 将图像文件写入 OpenERP 的二进制字段
【发布时间】:2013-05-31 21:26:00
【问题描述】:

我使用 python 瓶创建了一个用于访问 OpenERP REST API 的 api。

我的问题是在上传图像文件并将其写入 OpenERP 中的二进制字段时

它抛出 raise TypeError,“除非启用 allow_none,否则无法封送 None”

我在这里上传了我的代码

from bottle import get, post, run,request,error,route,template
@route('/')
def index():
   return'''Welcome'''


@error(500)
def custom500(error):
   return 'Error while validating data.'

# Advisor Creation Start #

@get('/advisor') # or @route('/advisor')

def advisor_form():
    form ='''<form method="POST" action="/advisor" enctype="multipart/form-data">
            Photo:<input name="photo" type="file"/><br>
            <input type="submit" />
          </form>'''
    return form

@post('/advisor') # or @route('/advisor', method='POST')
def advisor_submit():
   import xmlrpclib
   username = 'uname'
   pwd = 'pwd'      
   dbname = 'db'    

   photo  = request.files.get('photo')
   print photo,"L:K<:L"
   sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
   try:
      uid = sock_common.login(dbname, username, pwd)
   except("Error username or password"):
      print "sock_common error"
   sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')
   res={
     'consultant_photo':photo
   }

   advisor_id = sock.execute(dbname, uid, pwd, 'res.advisor', 'create', res)
   return 'Advisor Created!'
   # Advisor Creation End #
 run(host='localhost', port=8000)

【问题讨论】:

    标签: python api rest openerp bottle


    【解决方案1】:

    这是您在上传文件准备好发送到 OpenERP 之前必须做的事情

    获取文件指针

    photo  = request.files.get('photo')
    

    读取文件数据

    photo_data = photo.file.read()
    

    base64 编码

    base64.b64encode(photo_data)
    

    现在您可以将此数据传递给 openerp

    【讨论】:

    • 当我打印图像的返回类型时无法对图像进行编码它作为实例类型返回为什么它作为实例返回以及如何将它作为二进制数据返回
    • 感谢 sinoj 的伟大...我想回答上述问题。我想从 openerp 的 xml rpc 读取图像。我在 openerp v7 中创建了自定义模块,我想使用 django 在我的网站中获取该模块的值。我能够获取所有文本字段,但无法获取图像。在获取图像(二进制字段)时,它给出的值可能是 b64encoded。我不知道在不存储图像数据的情况下使该图像可见。是否有任何直接的方法可以访问 openerp 模块的图像 url。你能指导我吗?感谢您的时间和帮助。
    猜你喜欢
    • 2011-08-06
    • 2019-09-06
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多