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

Odoo 18自定义模块UncaughtPromiseError问题排查求助

Odoo 18 自定义模块「View types not defined tree」错误排查与解决

错误原因分析

错误提示明确指出act_window动作中存在未定义的tree视图类型,尽管你已将XML中的<tree>标签替换为<list>,但问题出在视图记录的type字段未正确设置:

  • Odoo 18中tree视图已被list替代,若视图记录未显式指定type="list",系统会默认使用旧的tree类型,导致类型未定义错误。
  • aircraft_view.xml中重复定义了view_aircraft_list视图,第二个记录覆盖了第一个正确设置type="list"的视图,且未指定类型字段。
  • mission_views.xml、pilot_stats_view.xml中的list视图均未添加type="list"字段,默认使用tree类型。
  • menu_views.xml中action_warthunder_pilot_stats指定了view_mode="list,form",但未定义warthunder.pilot.stats的form视图,可能引发额外错误。

具体解决步骤

  1. 移除重复的视图记录
    打开aircraft_view.xml,删除最后一段重复定义的view_aircraft_list记录,保留第一个包含type="list"的定义:

    <!-- 保留这段正确的定义,删除后面重复的 -->
    <record id="view_aircraft_list" model="ir.ui.view">
        <field name="name">warthunder.aircraft.list</field>
        <field name="model">warthunder.aircraft</field>
        <field name="type">list</field>
        <field name="priority">1</field>
        <field name="arch" type="xml">
            <list>
                <field name="name"/>
                <field name="battle_rating"/>
                <field name="nation"/>
                <field name="pilot_id"/>
                <field name="total_missions"/>
            </list>
        </field>
    </record>
    
  2. 为所有list视图添加type="list"字段

    • 在mission_views.xml的view_mission_list中添加类型字段:
      <record id="view_mission_list" model="ir.ui.view">
          <field name="name">warthunder.mission.list</field>
          <field name="model">warthunder.mission</field>
          <field name="type">list</field> <!-- 添加此行 -->
          <field name="arch" type="xml">
              <list>
                  <field name="name"/>
                  <field name="date"/>
                  <field name="aircraft_id"/>
                  <field name="result"/>
              </list>
          </field>
      </record>
      
    • 在pilot_stats_view.xml的view_pilot_stats_list中添加类型字段:
      <record id="view_pilot_stats_list" model="ir.ui.view">
          <field name="name">warthunder.pilot.stats.list</field>
          <field name="model">warthunder.pilot.stats</field>
          <field name="type">list</field> <!-- 添加此行 -->
          <field name="arch" type="xml">
              <list>
                  <field name="pilot_id"/>
                  <field name="total_missions"/>
                  <field name="victories"/>
                  <field name="defeats"/>
                  <field name="win_rate" widget="percentage"/>
              </list>
          </field>
      </record>
      
  3. 修正pilot stats动作的视图模式
    由于未定义warthunder.pilot.stats的form视图,修改menu_views.xml中的action_warthunder_pilot_stats:

    <record id="action_warthunder_pilot_stats" model="ir.actions.act_window">
        <field name="name">Pilot Stats</field>
        <field name="res_model">warthunder.pilot.stats</field>
        <field name="view_mode">list</field> <!-- 移除form -->
    </record>
    

    若需要form视图,需为warthunder.pilot.stats添加对应的form视图记录。

  4. 升级模块并清除缓存

    • 在Odoo后台升级你的自定义模块
    • 清除浏览器缓存(快捷键:Ctrl+Shift+R),确保前端加载最新的视图配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:19:59