2015-08-13 5 views

Antwort

7

Nachdem er einen Tag graben im Quellcode versuchen kann, habe ich die Lösung gefunden! Es beinhaltet nicht wirklich die Vorlage, aber ich habe die Idee aus dem Quellcode des Standard-Textfeld-Widget, also denke ich, es sollte nicht als "Hacking" betrachtet werden.

Hier ist meine benutzerdefinierte Widget-Klasse:

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'); 
} 

Meine Vorlage jetzt nichts enthält, speziell:

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

Arbeiten wie ein Charme. Es aktualisiert sogar die Seite, wenn ich eine Änderung auf der Serverseite mache.

Odoo Dokumentation sollte wirklich gesprächiger sein !!!

Update: Die Antwort gilt für Odoo 8. Es kann etwas anders in Odoo 9 arbeiten, weil sie das UI-Framework in der neuen Version überarbeitet haben.

1

Wir können wie das tun

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

Wo

model.name Tabellenname ist,

image_small ist ein Feldname, der/Speicher binäre Art von Daten halten.

EDIT:

Um Wert des Feldes in Vorlage anzuzeigen, Sie mit diesem

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

Danke, aber eigentlich möchte ich eine URL anzeigen. Die URL ist der Wert meines Felds, und habe keine Ahnung, wie ich diesen Wert abrufen könnte ... –

+1

können Sie versuchen mit diesem '' –

+0

Danke für den Tipp, ich werde es morgen versuchen. Ich frage mich, wie Standard Textfeld Widget tut es, wie es mit jedem Feld des Modells funktioniert ... –

Verwandte Themen