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

Odoo如何修改默认菜单项的展示视图

Odoo 菜单项样式调整实现方案

要将默认侧边栏菜单项调整为顶部水平排列样式,通过自定义模块继承修改原生视图即可实现,无需修改Odoo核心代码,操作步骤如下:

  • 第一步:创建自定义模块,在模块的__manifest__.py中声明对web基础模块的依赖。
  • 第二步:在模块路径下新建static/src/xml/web_menu.xml文件,继承原生导航栏QWeb模板,重写菜单渲染结构:
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
    <t t-inherit="web.WebClient.NavBar" t-inherit-mode="extension">
        <xpath expr="//div[hasclass('o_navbar_apps_menu')]" position="replace">
            <div class="o_horizontal_menu d-flex align-items-center w-100">
                <t t-foreach="menuApps" t-as="app">
                    <a t-attf-href="/web#menu_id={{app.id}}" class="px-3 py-2 text-decoration-none text-nowrap" t-att-class="currentApp.id == app.id ? 'text-primary fw-bold' : 'text-muted'">
                        <t t-esc="app.name"/>
                    </a>
                </t>
            </div>
        </xpath>
    </t>
</templates>
  • 第三步:新建static/src/css/menu_style.css文件,调整全局布局适配水平菜单样式:
/* 隐藏原侧边栏触发按钮与侧边栏本身 */
.o_main_navbar .o_menu_toggle, .o_app_sidebar {
    display: none !important;
}
/* 调整主内容区边距,适配顶部菜单高度 */
.o_action_manager {
    margin-left: 0 !important;
    margin-top: 56px !important;
}
/* 水平菜单超出宽度时滚动隐藏滚动条 */
.o_horizontal_menu {
    overflow-x: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.o_horizontal_menu::-webkit-scrollbar {
    display: none;
}
  • 第四步:在__manifest__.py的assets节点注册新增的静态资源:
'assets': {
    'web.assets_backend': [
        '你的自定义模块名/static/src/xml/web_menu.xml',
        '你的自定义模块名/static/src/css/menu_style.css',
    ],
},
  • 第五步:安装或升级自定义模块,刷新浏览器后即可生效。如果需要调整菜单项的展示顺序、显示层级,可以直接修改ir.ui.menu记录的sequence、parent_id属性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:09