odoorpc 上传图片
以产品图片为例上传
def product_upload_image(self):
"""
# product.template(26265,).write_fast({'product_image_ids': [[4, 6, False], [0, 'virtual_1947', {'name': ' DZ01XHY B.Duck 小黄鸭刀架收纳桶 ', 'product_tmpl_id': 26265, 'image': 'iVB
:return:
"""
for code,file in self.get_item():
print(code,file)
list_product_temp_id = self.odoo.env['product.template'].search([('default_code','=',code)])
if not list_product_temp_id:
continue
product_temp_id = self.odoo.env['product.template'].browse(list_product_temp_id)
with open(os.path.join(r'D:\Temp\full',file),'rb') as f:
res = f.read()
# 图片需要base64 加密
blob2_b64 = base64.b64encode(res)
# 上传图片关键代码
product_temp_id.write({'product_image_ids':[[0,0,{'name': file, 'product_tmpl_id': list_product_temp_id[0], 'image': blob2_b64.decode('utf-8')}],]})
@staticmethod
def get_item():
# 获取图片路径
for i in os.listdir(r'D:\Temp\full'):
item = i.split('--')[0].strip()
yield i[0:5], i
懂得,原来世界如此简单!