You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14中tree标签能否自定义两行表头?求实现代码

Odoo14 实现Tree视图两行表头

Odoo14原生不支持Tree视图直接渲染两行表头,但可以通过自定义CSS+字段分组/文本拆分的方式实现类似效果,以下是具体实现步骤:

实现代码

1. 修改XML视图代码

给字段添加自定义类名,通过<br/>拆分表头文本,或用group标签模拟分组式两行表头:

<page name="test_header" string="test header">
    <tree string="My Tree" class="two-line-header">
        <!-- 第一组表头 -->
        <group string="基础信息" colspan="2">
            <field name="field1" string="字段1<br/>(基础属性)" class="line-break-header"/>
            <field name="field2" string="字段2<br/>(核心数据)" class="line-break-header"/>
        </group>
        <!-- 第二组表头 -->
        <group string="扩展信息" colspan="2">
            <field name="field3" string="字段3<br/>(备注说明)" class="line-break-header"/>
            <field name="field4" string="字段4<br/>(状态标识)" class="line-break-header"/>
        </group>
    </tree>
</page>

2. 添加自定义CSS样式

在模块的static/src/css目录下创建tree_two_line.css文件,写入以下样式:

/* 允许表头文本换行 */
.o_list_view.two-line-header .o_list_header_cell .o_column_title {
    white-space: pre-line;
    line-height: 1.2;
}

/* 分组表头样式优化 */
.o_list_view.two-line-header .o_group_header {
    text-align: center;
    font-weight: bold;
    background-color: #f5f5f5;
    border-bottom: 1px solid #ddd;
}

/* 调整表头单元格内边距适配两行高度 */
.o_list_view.two-line-header .o_list_header_cell {
    padding: 8px 12px;
}

3. 引入CSS文件

在模块的views/assets.xml中添加CSS引入配置:

<odoo>
    <data>
        <template id="assets_backend" name="two-line-tree-header-assets" inherit_id="web.assets_backend">
            <xpath expr="." position="inside">
                <link rel="stylesheet" href="/你的模块名称/static/src/css/tree_two_line.css"/>
            </xpath>
        </template>
    </data>
</odoo>

注意事项

  • 替换代码中的「你的模块名称」为实际模块名
  • 若不需要分组表头,仅需单个字段表头换行,保留line-break-header类和对应CSS即可
  • 该方案通过前端样式修改实现,不影响Odoo核心业务逻辑

内容的提问来源于stack exchange,提问作者Pame

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:01:18