2015-08-13 20 views

cevap

7

ile çalışabilir, ben bir çözüm buldum! Şablonu gerçekten içermiyor, ancak varsayılan metin alanı widget'ının kaynak kodundan bir fikrim var, bu yüzden "hacking" olarak görülmemesi gerektiğini düşünüyorum. Büyü gibi

<?xml version="1.0" encoding="UTF-8"?> 
<templates xml:space="preserve"> 
    <t t-name="ImageDisplayer"> 
     <img /> 
    </t> 
</templates> 

Çalışır:

openerp.mymodule = function(instance, local) { 
    instance.ImageDisplayer = instance.web.form.AbstractField.extend({ 
     template: "ImageDisplayer", 
     init: function (view, code) { 
      this._super(view, code); 
     }, 
     // The key part: 
     render_value: function() { 
      this.$el[0].src = this.get("value"); 
     } 
    }); 
    instance.web.form.widgets.add('ImageDisplayer', 'instance.ImageDisplayer'); 
} 

Benim şablonu artık özel bir şey içermiyor:

İşte benim özel Widget sınıfı. Sunucu tarafında bir değişiklik yaptığımda bile sayfayı günceller.

Odoo belgeleri gerçekten daha konuşkan olmalı!

Güncelleştirme: yanıt Odoo 8 için geçerlidir. Odoo 9'da biraz farklı şekilde çalışabilir, çünkü UI çerçevesini yeni sürümde revize etmişlerdir.

1

Biz

<img t-att-src="kanban_image('model.name', 'image_small', record.id.value)"/> 

model.name tablo adını ise

,

image_small gibi yapabileceği veri/mağaza ikili türü tutacak bir alan adıdır.

DÜZENLEME:

şablonda alanın değerini görüntülemek için, kaynak kodunda kazma bir gün geçirdikten sonra bu

<img t-att-src="record.field_name"/> 
+0

Teşekkürler, ama aslında bir URL görüntülemek istiyorum. URL benim alanımın değeridir ve bu değeri nasıl alabileceğimi bilmiyorum ... –

+1

Bu '' –

+0

ile deneyebilirsiniz İpucu için teşekkürler, yarın deneyeceğim. Modelin herhangi bir alanıyla çalıştığı için varsayılan metin kutusu widget'ının bunu nasıl yaptığını merak ediyorum ... –