Odoo服务器报错:tree子标签使用违规,移除后UI无字段显示
解决方案
1. 修正字段标签拼写错误
把所有拼写错误的<feild>标签改成正确的<field>——Odoo的XML视图对标签名拼写严格校验,错写的标签会被判定为非法节点,直接触发服务器错误。
2. 规范Notebook内的视图结构
Notebook是form视图的分页组件,它的子节点必须是<page>标签,每个页面内可以用<group>组织字段,或者直接放置<field>,遵循form视图的结构规范:
<notebook> <page string="基础信息"> <group> <field name="name"/> <field name="user_id"/> </group> <group> <field name="create_date"/> <field name="write_date"/> </group> </page> <page string="详情"> <field name="description"/> </page> </notebook>
3. 关联数据展示的正确姿势
如果是要在Notebook页展示one2many/many2many类型的关联列表数据,不能直接在Notebook下写<tree>,要通过关联字段内嵌tree视图实现:
<notebook> <page string="关联订单"> <field name="order_ids"> <tree string="订单列表"> <field name="order_number"/> <field name="amount_total"/> <field name="state"/> </tree> </field> </page> </notebook>
这里的order_ids必须是模型中已定义的one2many类型字段,内部的<tree>是该关联字段的内嵌列表视图,既符合Odoo规范,又能正常渲染数据。
4. 排查字段不显示的额外问题
修改完视图后升级对应模块,若字段仍不显示,检查:
- 字段是否在模型中正确定义(存在且配置了读权限)
- 字段的
readonly、invisible属性是否被误设为1 - 当前视图是否被其他继承视图覆盖
内容的提问来源于stack exchange,提问作者Muhammad Awais
相关产品推荐
相关产品推荐

