Odoo ORM具有可以保存图像的二进制类型字段。这些图像的问题在于它们以HTML编码的形式提供。这些加起来是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?
答案 0 :(得分:1)
你可以使用image&#34; t-attf-src = / web / binary / image?model = ir.attachment&amp; field = datas&amp; id =(your img ID)&#34;而不是&#34; t-attf-src =&#34;数据:image / *; ....&#34;