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

创建Odoo模型时触发tree视图RPC_ERROR问题求助

Odoo模块激活报错:Wrong value for ir.ui.view.type: 'tree' 解决

我是Odoo与Python开发新手,正尝试创建一个模块以使用现有数据库表pc_clientes,并通过tree、form视图展示数据。已编写models.py及视图XML代码,但激活模块时触发RPC_ERROR,错误提示“Wrong value for ir.ui.view.type: 'tree'”。此前按教程操作可成功,现无法解决该问题,恳请帮助。

models.py

# models.py
from odoo import models, fields

class pc_clientess(models.Model):
    _name = "clientes.pc_clientes"
    _description = "Tabla de clientes"
    _table = "pc_clientes"

    xempgen_id = fields.Char(string="Empresa ID", required=True)
    xcliente_id = fields.Char(string="Cliente ID", required=True)

视图XML

<odoo>
    <data>
      <record id="clientes_tree_view" model="ir.ui.view">
        <field name="name">clientes.tree.view</field>
        <field name="model">clientes.pc_clientess</field>
        <field name="arch" type="xml">
          <tree>
            <field name="xempgen_id"/>
            <field name="xcliente_id"/>
          </tree>
        </field>
      </record>

      <record id="clientes_form_view" model="ir.ui.view">
        <field name="name">clientes.form.view</field>
        <field name="model">clientes.pc_clientess</field>
        <field name="arch" type="xml">
          <form>
            <field name="xempgen_id"/>
            <field name="xcliente_id"/>
          </form>
        </field>
      </record>

      <record id="clientes_action" model="ir.actions.act_window">
        <field name="name">Clientes</field>
        <field name="res_model">clientes.pc_clientess</field>
        <field name="view_mode">tree,form</field>
      </record>

      <menuitem id="menu_root" name="Rioma"/>
      <menuitem id="menu_clientes" name="Clientes" parent="menu_root"/>
      <menuitem id="menu_clientes_list" name="Clientes List"
      parent="menu_clientes" action="clientes_action"/>
    </data>
</odoo>

错误信息

RPC_ERROR

Odoo Server Error

Occured on localhost:8069 on model ir.module.module and id 16 on 2024-11-19 08:40:10 GMT

Traceback (most recent call last):
...
ValueError: Wrong value for ir.ui.view.type: 'tree'
...
odoo.tools.convert.ParseError: while parsing file:/c:/odoo/modules/clientes/views/templates.xml:4, somewhere inside
<record id="clientes_tree_view" model="ir.ui.view">
        <field name="name">clientes.tree.view</field>
        <field name="model">clientes.pc_clientess</field>
        <field name="arch" type="xml">
          <tree>
            <field name="xempgen_id"/>
            <field name="xcliente_id"/>
          </tree>
        </field>
      </record>

解决方案

1. 修正模型名称拼写错误

模型的_name定义为clientes.pc_clientes,但视图XML中所有引用模型的地方都写成了clientes.pc_clientess(多了一个末尾的s),这会导致Odoo找不到对应模型,进而引发视图类型推断错误,这是核心问题。

2. (可选)明确指定视图类型

虽然Odoo可以从视图arch的根节点推断类型,但明确添加type字段能避免潜在的推断问题,让代码逻辑更清晰。

修正后的视图XML代码如下:

<odoo>
    <data>
      <record id="clientes_tree_view" model="ir.ui.view">
        <field name="name">clientes.tree.view</field>
        <field name="model">clientes.pc_clientes</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
          <tree>
            <field name="xempgen_id"/>
            <field name="xcliente_id"/>
          </tree>
        </field>
      </record>

      <record id="clientes_form_view" model="ir.ui.view">
        <field name="name">clientes.form.view</field>
        <field name="model">clientes.pc_clientes</field>
        <field name="type">form</field>
        <field name="arch" type="xml">
          <form>
            <field name="xempgen_id"/>
            <field name="xcliente_id"/>
          </form>
        </field>
      </record>

      <record id="clientes_action" model="ir.actions.act_window">
        <field name="name">Clientes</field>
        <field name="res_model">clientes.pc_clientes</field>
        <field name="view_mode">tree,form</field>
      </record>

      <menuitem id="menu_root" name="Rioma"/>
      <menuitem id="menu_clientes" name="Clientes" parent="menu_root"/>
      <menuitem id="menu_clientes_list" name="Clientes List"
      parent="menu_clientes" action="clientes_action"/>
    </data>
</odoo>

修改后重新升级并激活模块,问题即可解决。

内容的提问来源于stack exchange,提问作者David Carmona Arrabal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:17:26