Odoo veritabanımda bir ürün listesini almak için bir komut dosyası üzerinde çalışıyorum. Komut, görüntüyü içe aktarma dışında Odoo API'sı ile gerçekten iyi çalışıyor. Bugüne kadar ne yaptın, base64 onu kodlayan ardından piton bir URL'den bir görüntü almak ve şudur:Resim Oioo API ile Python'da içe aktarın 3.4
response = requests.get(image_url)
img_obj = Image.open(BytesIO(response.content))
buffer = BytesIO()
img_obj.save(buffer, format="JPEG")
img = base64.encodestring(buffer.getvalue()).strip()
try:
base64.b64decode(img)
except TypeError:
padding = len(img) % 4
if padding == 1:
img = "Invalid base64 string: {}".format(img)
elif padding == 2:
img += b'=='
elif padding == 3:
img += b'='
Bu kod harika çalışıyor. (Sen benim önceki kodda görebileceğiniz gibi),
xmlrpc.client.Fault: Fault 1:
Traceback (most recent call last):
File "/opt/odoo/openerp/service/wsgi_server.py", line 56, in xmlrpc_return
result = openerp.http.dispatch_rpc(service, method, params)
File "/opt/odoo/openerp/http.py", line 114, in dispatch_rpc
result = dispatch(method, params)
File "/opt/odoo/openerp/service/model.py", line 37, in dispatch
res = fn(db, uid, *params)
File "/opt/odoo/openerp/service/model.py", line 173, in execute_kw
return execute(db, uid, obj, method, *args, **kw or {})
File "/opt/odoo/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/openerp/service/model.py", line 181, in execute
res = execute_cr(cr, uid, obj, method, *args, **kw)
File "/opt/odoo/openerp/service/model.py", line 170, in execute_cr
return getattr(object, method)(cr, uid, *args, **kw)
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/addons/stock/product.py", line 518, in write
return super(product_template, self).write(cr, uid, ids, vals, context=context)
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/opt/odoo/addons/account/models/product.py", line 45, in write
res = super(ProductTemplate, self).write(vals)
File "/opt/odoo/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/opt/odoo/addons/product/product.py", line 705, in write
res = super(product_template, self).write(cr, uid, ids, vals, context=context)
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/opt/odoo/addons/mail/models/mail_thread.py", line 274, in write
result = super(MailThread, self).write(values)
File "/opt/odoo/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/openerp/models.py", line 3820, in write
self._write(old_vals)
File "/opt/odoo/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/opt/odoo/openerp/models.py", line 3971, in _write
result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
File "/opt/odoo/openerp/osv/fields.py", line 646, in set
'datas': value,
File "/opt/odoo/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/openerp/api.py", line 478, in new_api
result = method(self._model, cr, uid, *args, **old_kwargs)
File "/opt/odoo/openerp/addons/base/ir/ir_attachment.py", line 459, in create
values['mimetype'] = self._compute_mimetype(values)
File "/opt/odoo/openerp/addons/base/ir/ir_attachment.py", line 252, in _compute_mimetype
mimetype = guess_mimetype(values['datas'].decode('base64'))
File "/usr/lib/python2.7/xmlrpclib.py", line 503, in decode
self.data = base64.decodestring(data)
File "/usr/lib/python2.7/base64.py", line 321, in decodestring
return binascii.a2b_base64(s)
Error: Incorrect padding
ben base64 dolguyu düzeltmeye çalıştık, ama bu: Ben Odoo API ile almak için piton kod çalıştırmasına Fakat, burada ne var çalışmıyor. Bu sorunu nasıl çözebilirim bilen var mı? Bu benim Python 3,4 içinde Odoo Python 2,7 içinde olan benim senaryodan gelebilir mi?
Sağol,
Lütfen izinizi doğru biçimlendirilmiş halde alın! –