我创建了一个自定义模块,在我的 TreeView 中,我将始终只有 1 行数据。但在我的 TreeView 中,它显示了额外的空行。如何删除那些不需要的空行?
我的查看代码:
<record model="ir.ui.view" id="ctimesheet.list">
<field name="name">ctimesheet list</field>
<field name="model">time.recorder</field>
<field name="arch" type="xml">
<tree string="TIME SHEET" create="false">
<field name="total_time"/>
<field name="month_time"/>
<field name="yesterday_time"/>
<field name="week_time"/>
<field name="notsubmitted_time"/>
<field name="user_id" invisible="1"/>
</tree>
</field>
</record>
最佳答案
通过编辑odoo代码来更新javascript是非常糟糕的,你应该使用include来覆盖 代码:
创建一个新模块并创建一个 javascript 文件:
/your_addon_name/static/src/js/list_view.js
在你的 javascript 文件中重写渲染方法,如下所示:
odoo.define('you_module_name.ListView', function (require) {
"use strict";
// First retrieve the veiw from view_registry
ListView = core.view_registry.get('list');
// now use include to override the render method
ListView.include({
render: function () {
// call super method first
this._super();
// then override what you need
// and best thing here is that you can dor this for
// your model only
if (this.model == 'addon_name.model_name'){
this.pad_table_to(1);
}
}
});
}
当然,仅仅编写 JavaScript 并不能解决问题,我们应该将 Java 脚本文件放入 backends_asset 模板中 将被加载到 odoo 后端。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend_custom_id" name="list_view assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/your_addon_name/static/src/js/list_view.js"></script>
</xpath>
</template>
</odoo>
不要忘记将 xml 文件放入 odoo list 中,希望这对您和其他人有帮助
关于odoo - 显示额外空字段的 TreeView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46468472/