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
posted @   那时一个人  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2021-08-03 odoo 分布式,服务器多开,单一数据库,odoo multi server,multiAP
2021-08-03 nginx IP 分流
点击右上角即可分享
微信分享提示