如何在Odoo中通过计算方法获取二进制字段图片的URL
在Odoo中通过Binary字段上传图片并生成图片URL
以下是实现通过Binary字段上传图片,并利用compute方法自动计算出可访问的图片URL的完整代码:
image = fields.Binary(string='分类图片', required=True) image_url = fields.Char('图片URL', compute="get_image_url") def get_image_url(self): web_base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') for record in self: # 两种URL格式任选其一,下方为查询参数式写法 record.image_url = f'{web_base_url}/web/image?model={self._name}&id={record.id}&field=image' # 注释内容为路径式写法,功能与上方一致 # record.image_url = f'{web_base_url}/web/image/{self._name}/{record.id}/image' print(record.image_url)
关键说明
web.base.url:通过系统参数获取当前Odoo实例的基础访问地址,确保生成的URL能正确指向实例- 两种URL格式:
- 查询参数式:
/web/image?model=模型名&id=记录ID&field=字段名,兼容性更强 - 路径式:
/web/image/模型名/记录ID/字段名,写法更简洁
- 查询参数式:
- compute方法需遍历每条记录,保证每条数据都能生成对应的专属图片URL
内容的提问来源于stack exchange,提问作者coool ksh
相关产品推荐
相关产品推荐

