2017-07-14 146 views
5

是否可以在樹形視圖中顯示html?在樹狀視圖中顯示html odoo

例如添加強大的字符串< strong>我的STRING </STRONG>

我嘗試使用小工具= 「HTML」,但強大的標籤是可見的!

的.py

@api.depends('name') 
def _get_html(self): 
    self.html_text = "<strong>" + str(self.name) + "</strong>" 

    html_text = fields.Char(compute='_get_html') 

的.xml

<field name="html_text"/> 
+2

能否請您加入問題的樹狀視圖? –

+2

@VikiChavada我加我的榜樣! –

回答

7

爲了能夠在列表視圖中的HTML,你需要重寫方法_format()如下(爲Odoo V10)

JS

odoo.define('html_in_tree_field.web_ext', function (require) { 
    "use strict"; 
    var Listview = require('web.ListView'); 
    var formats = require('web.formats'); 

    Listview.Column.include({ 
     _format: function (row_data, options) { 
     // Removed _.escape() function to display html content. 
     // Before : return _.escape(formats.format_value(row_data[this.id].value, this, options.value_if_empty)); 
     return formats.format_value(row_data[this.id].value, this, options.value_if_empty); 
     } 
    }); 
}); 

XML上面添加JS。

<?xml version="1.0" encoding="utf-8"?> 
<odoo> 
    <template id="assets_ext" inherit_id="web.assets_backend"> 
     <xpath expr="." position="inside"> 
      <script type="text/javascript" src="/html_in_tree_field/static/src/js/web_ext.js"></script> 
     </xpath> 
    </template> 
</odoo> 

__manifest__.py

{ 
... 
... 
'data': [ 
     ... 
     'views/above_xml_filename.xml', 
    ], 
.... 
}