Odoo教程实操中自定义XML表单视图渲染异常问题求助
问题排查及修复方案
你当前的表单XML存在以下几个明显的布局错误,直接修改即可匹配预期效果:
- notebook标签使用错误
Odoo表单中所有标签页(page)必须放在同一个<notebook>容器下,你现在拆分了3个独立的notebook,会导致渲染成多组独立的标签栏,完全不符合常规布局逻辑。 - 字段重复定义
postcode字段分别在顶部基础信息组和Description标签页中重复声明,可能引发渲染冲突。 - 外层布局结构错误
你把notebook容器塞进了顶部双列布局的外层group中,导致标签页只能占半屏宽度,正确的结构应该是顶部双列信息组独立闭合,notebook单独放在外层,占满整个sheet的宽度。 - 可选优化点
offer_ids如果是one2many类型字段,建议明确指定widget属性,避免默认渲染异常;form标签的string属性值Lost Reason和当前房产模型不匹配,可按需修改。
修正后的XML代码参考:
<record id="estate_property_view_form" model="ir.ui.view"> <field name="name">estate.property.form</field> <field name="model">estate.property</field> <field name="arch" type="xml"> <form string="房产信息"> <sheet> <h1 class="mb32"> <field name="name" class="mb16"/> </h1> <!-- 顶部双列基础信息组 独立闭合 --> <group> <group> <field name="property_type_id" string="Property Type"/> <field name="postcode"/> <field name="date_availability"/> </group> <group> <field name="expected_price"/> <field name="selling_price"/> </group> </group> <!-- 所有标签页放在同一个notebook下 --> <notebook> <page string="Description"> <group> <field name="tag_ids" string="Tag" widget="many2many_tags"/> <field name="description"/> <field name="bedrooms"/> <field name="living_area"/> <field name="facades"/> <field name="garage"/> <field name="garden"/> <field name="garden_area"/> <field name="garden_orientation"/> </group> </page> <page string="Other info"> <group> <field name="buyer"/> <field name="salesperson"/> </group> </page> <page string="Offers"> <group> <field name="offer_ids" widget="one2many_list"/> </group> </page> </notebook> </sheet> </form> </field> </record>
修改完成后请升级对应模块,同时清空浏览器缓存和Odoo服务器缓存后再查看效果即可。
内容的提问来源于stack exchange,提问作者Vlad Osmolovsky
相关产品推荐
相关产品推荐

