Odoo 显示图像替代
Odoo display images alternative
Odoo ORM 有二进制类型字段可以保存图像。这些图像的问题在于它们以 HTML 作为 base64 编码交付。这些加起来达到 HTML 大小,无法缓存或通过 CDN 传送。
我需要添加图片上传到模块。然后这些图像将显示在网站上。有替代方法吗?型号代码如下:
class BannerImage(models.Model):
_name = 'banner.image'
_description = 'Banner Image'
image_desktop = fields.Binary('Desktop Image', attachment=True)
image_mobile = fields.Binary('Mobile Image', attachment=True)
start_date = fields.Date("Start Date")
end_date = fields.Date("End Date")
action = fields.Char("URL")
desc = fields.Text("Additional Description")
banner = fields.Many2one('banner.banner', "Banner")
后端声明如下:
<record id="action_view_banner_images" model="ir.actions.act_window">
<field name="name">Banner Images</field>
<field name="res_model">banner.image</field>
<field name="view_mode">tree,form</field>
</record>
这些在 HTML 模板中使用如下:
<div class="banners">
<t t-foreach="banners.images" t-as="banner_image">
<img class="media-object img-responsive" t-attf-src="data:image/*; base64,{{banner_image.image_desktop}}" />
</t>
</div>
是否有另一种调用这些图像的方法,可能是使用 URL?
您可以使用图片 "t-attf-src=/web/binary/image?model=ir.attachment&field=datas&id=(your img ID)" 而不是 "t-attf-src="data:image/*;.... "
Odoo ORM 有二进制类型字段可以保存图像。这些图像的问题在于它们以 HTML 作为 base64 编码交付。这些加起来达到 HTML 大小,无法缓存或通过 CDN 传送。
我需要添加图片上传到模块。然后这些图像将显示在网站上。有替代方法吗?型号代码如下:
class BannerImage(models.Model):
_name = 'banner.image'
_description = 'Banner Image'
image_desktop = fields.Binary('Desktop Image', attachment=True)
image_mobile = fields.Binary('Mobile Image', attachment=True)
start_date = fields.Date("Start Date")
end_date = fields.Date("End Date")
action = fields.Char("URL")
desc = fields.Text("Additional Description")
banner = fields.Many2one('banner.banner', "Banner")
后端声明如下:
<record id="action_view_banner_images" model="ir.actions.act_window">
<field name="name">Banner Images</field>
<field name="res_model">banner.image</field>
<field name="view_mode">tree,form</field>
</record>
这些在 HTML 模板中使用如下:
<div class="banners">
<t t-foreach="banners.images" t-as="banner_image">
<img class="media-object img-responsive" t-attf-src="data:image/*; base64,{{banner_image.image_desktop}}" />
</t>
</div>
是否有另一种调用这些图像的方法,可能是使用 URL?
您可以使用图片 "t-attf-src=/web/binary/image?model=ir.attachment&field=datas&id=(your img ID)" 而不是 "t-attf-src="data:image/*;.... "