Odoo显示图像替代

时间:2017-06-09 09:42:09

标签: python openerp odoo-10

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?

1 个答案:

答案 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;