2017-06-09 14 views
0

オードーORMには、画像を保持できるバイナリタイプのフィールドがあります。これらの画像の問題点は、base64でエンコードされたHTMLで配信されることです。これらはHTMLサイズと合算され、CDN経由でキャッシュまたは配信することはできません。オドー表示画像代替

アップロードする画像をモジュールに追加する必要があります。これらの画像はWebサイトに表示されます。これに代わるアプローチがありますか?以下のモデルコードは:バックエンド用

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

"t-attf-src ="の代わりに "t-attf-src =/web/binary/image?model = ir.attachment & field = datas & id =(あなたのimg ID) data:image/*; .... "

+0

モデル自体から添付ファイルIDを取得する方法はありますか?テンプレートで参照することは可能でしょうか – user3295878

+0

入手しました: t-attf-src =/web/binary/image?model = banner.image&field = image_desktop&id = {{banner_image.id}} " – user3295878

関連する問題