禁用在带有输入字段 Html 的 odoo 列表视图中添加 <p> 标签

问题描述 投票:0回答:4
python xml treeview odoo-9
4个回答
0
投票

将您的 xml 更改为

<tree>
<field name="issue" widget="html"/>
</tree>


0
投票

在 odoo v9 中,要在树视图中显示渲染的 HTML 内容,您必须覆盖 Web 模块“/web/static/src/js/views/list_view.js”中的文件并声明一个变量:

var ColumnHtml = Column.extend({
     _format: function (row_data, options) {
        return formats.format_value(row_data[this.id].value, this,options.value_if_empty);
     }
});

将此变量添加到 list_widget_registry 变量,例如:

list_widget_registry.add('field', Column).........add('field.html', ColumnHtml);

0
投票

将其添加到您的自定义模块.js:

odoo.define('your_custom_module.ListView', function (require) {
"use strict";

var ListView = require('web.ListView');
var formats = require('web.formats');
var core = require('web.core');
var list_widget_registry = core.list_widget_registry;

var ColumnHtml = ListView.Column.extend({
     format: function (row_data, options) {
        return formats.format_value(row_data[this.id].value, this,options.value_if_empty);
     },
});

list_widget_registry.add('field.html', ColumnHtml);

});

0
投票

我在 15.0 中遇到了这个问题。

t-raw
现在在 QWeb 中已过时,
t-out
是唯一可用的,因此我们想要输出的任何内容都必须是纯文本,或者包装到
markupsafe.Markup()
中,这正是
fields.Html()
的作用。然而,正如 OP 所演示的,以这种方式声明的字段会添加额外的
<p>
标签。

要禁用此功能,请添加

sanitize=False
,如下所示:

issue = fields.Html('name of field', sanitize=False)
© www.soinside.com 2019 - 2024. All rights reserved.