Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
7652 Lượt xem

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.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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,}])


Ảnh đại diện
Huỷ bỏ

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

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

Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 12 22
5675
write() vs update() Đã xử lý
4
thg 9 20
41860
2
thg 11 19
3340
1
thg 4 19
10000
2
thg 8 17
8011