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

Odoo 18自定义仪表盘求助:升级模块跳转至Discuss应用异常

Odoo自定义模块升级后跳转Discuss无法显示仪表盘的解决方案

核心问题定位

模块升级后跳转至Discuss,本质是模块入口动作未正确绑定自定义仪表盘视图,或视图/权限配置存在错误,导致Odoo无法找到模块默认入口, fallback到系统默认的Discuss应用。以下是针对性排查和修复步骤:


1. 检查模块入口动作与菜单绑定

打开模块的dashboard_views.xml,确认是否正确定义了仪表盘的窗口动作,并关联到模块菜单:

<!-- 定义仪表盘窗口动作 -->
<record id="action_product_tracking_dashboard" model="ir.actions.act_window">
    <field name="name">产品追踪工时表</field>
    <field name="res_model">product.tracking.dashboard</field> <!-- 替换为你的实际模型 -->
    <field name="view_mode">dashboard</field>
    <field name="target">current</field> <!-- 确保在当前页面打开,而非新窗口 -->
    <field name="context">{"search_default_group_by_product": 1}</field> <!-- 可选:默认筛选/分组 -->
</record>

<!-- 绑定到模块菜单 -->
<menuitem id="menu_product_tracking_root" name="产品追踪" sequence="15"/>
<menuitem 
    id="menu_product_tracking_dashboard" 
    name="工时表仪表盘" 
    parent="menu_product_tracking_root" 
    action="action_product_tracking_dashboard" 
    sequence="10"
/>

同时检查模块的__manifest__.py,确保data列表包含dashboard_views.xml的路径,避免配置文件未加载:

'data': [
    'security/ir.model.access.csv',
    'dashboard_views.xml',  # 确认路径正确
],

2. 验证仪表盘视图定义正确性

确保仪表盘视图的模型、类型和结构无语法错误:

<record id="view_product_tracking_dashboard" model="ir.ui.view">
    <field name="name">product.tracking.dashboard.view</field>
    <field name="model">product.tracking.dashboard</field> <!-- 与动作的res_model一致 -->
    <field name="arch" type="xml">
        <dashboard>
            <!-- 自定义仪表盘内容,示例:产品工时统计看板 -->
            <kanban>
                <field name="product_id"/>
                <field name="total_hours"/>
                <templates>
                    <t t-name="kanban-box">
                        <div class="oe_kanban_global_click">
                            <div class="oe_kanban_content">
                                <h4><field name="product_id"/></h4>
                                <div>总工时: <field name="total_hours"/></div>
                            </div>
                        </div>
                    </t>
                </templates>
            </kanban>
        </dashboard>
    </field>
</record>

重点检查:

  • model字段与动作的res_model完全匹配
  • arch内根标签为<dashboard>,无未闭合标签或语法错误

3. 确认权限配置

在模块security/ir.model.access.csv中,为仪表盘模型添加访问权限,确保当前用户有权限查看:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_tracking_dashboard,product.tracking.dashboard.access,model_product_tracking_dashboard,base.group_user,1,0,0,0
  • model_id:id需与模型的xml_id一致(格式为model_模型名)
  • 确保登录用户属于base.group_user或你指定的权限组

4. 清除缓存并重新升级模块

在Docker容器内执行以下命令,强制清除Odoo缓存并重新加载模块配置:

# 进入Docker容器(替换为你的容器名)
docker exec -it odoo_container bash

# 清除缓存并升级模块(替换为你的模块名)
odoo-bin -c /etc/odoo/odoo.conf --clear-cache -u product_tracking

5. 排查视图/动作冲突

开启Odoo开发者模式,进入设置 > 技术 > 动作 > 窗口动作,搜索你的动作ID(如action_product_tracking_dashboard):

  • 确认动作的res_model和view_mode与你的配置一致
  • 检查是否存在其他模块覆盖了该动作或视图的xml_id,导致加载失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:55:06