تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
7670 أدوات العرض

Hi all,

I am familiar with the ORM API and how to use to create new rows in models,

However, when there is a field which is an image (type: binary), how are we supposed to update its contents through the API?

Thanks.

الصورة الرمزية
إهمال
أفضل إجابة

Hi Alejandro:
Below Code Update One Product using Odoo XMLRPC you can change product_id and file_path

import base64
# Odoo API authentication


product_id=13
file_path = "/home/Estain/Documents/example.jpg"
with open(file_path, 'rb') as f:
​data = f.read()
​img = base64.b64encode
​encoded_image_data = base64.b64encode(data)
​ImageSend = encoded_image_data.decode('ascii')
​# Update product record with new image
​product = models.execute_kw(db, uid, password, 'product.template', 'write', [[product_id], ​{'image_1920': ImageSend,}])


الصورة الرمزية
إهمال

How about attach to filestore, instead of database binary field ?

The code is fine, but the line "img = base64.b64encode" can be skipped

أفضل إجابة

Hi Alejandro: You can try using python's base64 module to encode the content and pass it to the api.

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
ديسمبر 22
5692
write() vs update() تم الحل
4
سبتمبر 20
41869
2
نوفمبر 19
3362
1
أبريل 19
10005
2
أغسطس 17
8015