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

Odoo 15访问POS菜单触发TypeError错误,求解决方案

Odoo 15 POS菜单访问报错TypeError: Cannot read properties of undefined (reading 'type') 排查方案

使用Odoo 15时,安装某一与POS无关且无JavaScript代码的自定义模块后,访问Point of Sale菜单持续触发以下错误:

TypeError: Cannot read properties of undefined (reading 'type')
    at ControlPanelModelExtension._extractAttributes (http://localhost:5050/web/assets/debug/web.assets_backend.js:45261:46)
    at http://localhost:5050/web/assets/debug/web.assets_backend.js:45117:26 (/web/static/src/legacy/js/control_panel/control_panel_model_extension.js:959)
    at Array.forEach (<anonymous>) (/web/static/src/legacy/js/control_panel/control_panel_model_extension.js:815)
    at ControlPanelModelExtension._createGroupOfFiltersFromArch (http://localhost:5050/web/assets/debug/web.assets_backend.js:45074:24) (/web/static/src/legacy/js/control_panel/control_panel_model_extension.js:772)
    at ControlPanelModelExtension._addFilters (http://localhost:5050/web/assets/debug/web.assets_backend.js:44900:18) (/web/static/src/legacy/js/control_panel/control_panel_model_extension.js:598)
    at ControlPanelModelExtension.prepareState (http://localhost:5050/web/assets/debug/web.assets_backend.js:44523:22) (/web/static/src/legacy/js/control_panel/control_panel_model_extension.js:221)
    at ControlPanelModelExtension.importState (http://localhost:5050/web/assets/debug/web.assets_backend.js:93594:22) (/web/static/src/legacy/js/model.js:81)
    at ActionModel.importState (http://localhost:5050/web/assets/debug/web.assets_backend.js:93873:27) (/web/static/src/legacy/js/model.js:360)
    at new Model (http://localhost:5050/web/assets/debug/web.assets_backend.js:93769:18) (/web/static/src/legacy/js/model.js:256)
    at new ActionModel (http://localhost:5050/web/assets/debug/web.assets_backend.js:63508:5) (/web/static/src/legacy/js/views/action_model.js:59)

已尝试创建新数据库、更新Odoo源码,问题仍未解决。

原因分析

报错指向前端解析控制面板过滤器时,无法读取某个对象的type属性,说明后端传递给前端的过滤器数据或视图XML结构存在异常。虽然自定义模块无JS代码,但可能通过以下方式影响POS模块:

  • 意外继承/修改了POS相关模型(如pos.order)的搜索视图XML,破坏了过滤器的结构定义;
  • 新增/修改了全局或POS相关的ir.filters数据,存在缺少type字段的不完整过滤器;
  • 继承了ir.ui.view或ir.filters模型,修改了原有数据结构或逻辑,导致过滤器数据异常。

解决思路

  • 排查自定义模块的视图文件:检查模块内所有XML文件,确认是否继承了POS相关的搜索视图(如pos.order_search),或全局控制面板视图,查看是否存在过滤器标签(<filter>)缺少type属性,或继承时错误覆盖了原视图结构。
  • 检查自定义模块的过滤器数据:查看模块内data目录下的ir.filters记录,确认是否有针对POS模型的过滤器定义,或全局过滤器存在字段缺失(尤其是type字段)。
  • 验证模型继承影响:若模块继承了ir.ui.view或ir.filters模型,检查是否新增了字段、修改了原有方法,导致过滤器数据在传递到前端时结构异常。
  • 开发者模式下检查POS视图结构:启用开发者模式,打开POS菜单对应的动作(如“POS Orders”),查看其关联的搜索视图XML,检查过滤器组是否存在异常节点。
  • 逐步隔离测试:临时禁用该自定义模块,确认POS菜单恢复正常,再逐步注释模块内的XML、数据文件,定位到具体导致问题的代码段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:31:02