2015-08-13 10 views
5

मैंने ओडू में एक कस्टम विजेट बनाया है, और इसे एक फॉर्म फ़ील्ड के लिए प्रदर्शित किया है। मेरे टेम्पलेट इस तरह दिखता है:ओडू कस्टम फॉर्म फ़ील्ड विजेट - फ़ील्ड मान कैसे प्रदर्शित करें?

<t t-name="ImageDisplayer"> 
    <img t-att-src="?"/> 
</t> 

मैं कैसे <img> टैग की src विशेषता में फ़ील्ड का मान रख सकते हैं?

उत्तर

7

साथ कोशिश कर सकते हैं एक दिन बिताने के स्रोत कोड में खुदाई के बाद, मैं समाधान मिल गया है! इसमें वास्तव में टेम्पलेट शामिल नहीं है, लेकिन मुझे डिफ़ॉल्ट टेक्स्ट फ़ील्ड विजेट के स्रोत कोड से विचार मिला है, इसलिए मुझे लगता है कि इसे "हैकिंग" के रूप में नहीं माना जाना चाहिए।

यहाँ मेरी कस्टम विजेट वर्ग है:

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

वर्क्स एक आकर्षण की तरह:

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

मेरे टेम्पलेट अब कुछ भी विशेष नहीं है। जब भी मैं सर्वर-साइड पर कोई परिवर्तन करता हूं तो यह पेज को भी अपडेट करता है।

ओडू दस्तावेज वास्तव में और अधिक बात करने वाला होना चाहिए !!!

अद्यतन: उत्तर ओडू 8 पर लागू होता है। यह ओडू 9 में थोड़ा अलग तरीके से काम कर सकता है, क्योंकि उन्होंने नए संस्करण में यूआई ढांचे को संशोधित किया है।

1

हम उस

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

कहाँ

model.name तालिका नाम है,

image_small की तरह कर सकते हैं एक फ़ील्ड नाम जो डेटा की/दुकान द्विआधारी प्रकार रखा जाता है।

संपादित करें:

टेम्पलेट में फ़ील्ड का मान प्रदर्शित करने के लिए, तो आप इस

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

धन्यवाद, लेकिन वास्तव में मैं एक यूआरएल प्रदर्शित करना चाहता हूं। यूआरएल मेरे क्षेत्र का मूल्य है, और इस बारे में कोई जानकारी नहीं है कि मैं उस मूल्य को कैसे प्राप्त कर सकता हूं ... –

+1

आप इस '' –

+0

के साथ प्रयास कर सकते हैं टिप के लिए धन्यवाद, मैं कल इसे आजमाउंगा। मैं सोच रहा हूं कि डिफ़ॉल्ट टेक्स्टबॉक्स विजेट कैसे करता है, क्योंकि यह मॉडल के किसी भी क्षेत्र के साथ काम करता है ... –

संबंधित मुद्दे