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

Odoo 17列表视图隐藏新建按钮并保留导入功能的实现问题

Odoo 17:隐藏列表视图新建按钮并保留导入选项的解决方案

问题描述

需要在medical.progress模型的列表(tree)视图中隐藏新建按钮,同时保留导入功能,但直接创建新视图的XML配置未生效。

问题原因

直接创建新视图而非继承原有视图时,Odoo可能优先加载原视图,导致自定义配置不生效。正确的做法是通过视图继承来修改原有tree视图的属性。

正确配置示例

<record id="view_medical_progress_tree_inherit" model="ir.ui.view">
    <field name="name">medical.progress.tree.inherit</field>
    <field name="model">medical.progress</field>
    <!-- 替换为原medical.progress tree视图的实际ID,可在开发者模式下查看 -->
    <field name="inherit_id" ref="medical.view_medical_progress_tree"/>
    <field name="arch" type="xml">
        <xpath expr="//tree" position="attributes">
            <attribute name="create">false</attribute>
            <attribute name="import">true</attribute>
        </xpath>
    </field>
</record>

关键说明

  • 视图继承:必须基于原有的tree视图进行继承修改,而非重新创建视图,确保Odoo加载你的自定义配置。
  • 依赖配置:在模块的__manifest__.py中确保依赖medical模块('depends': ['medical']),否则继承会失效。
  • 权限验证:若用户本身无medical.progress模型的创建权限,按钮也会隐藏,但视图层面的create="false"会强制隐藏按钮,不受权限影响。

验证步骤

  1. 开启开发者模式,找到原medical.progress的tree视图ID并替换到配置中。
  2. 保存配置后升级模块。
  3. 刷新页面,检查列表视图的新建按钮是否隐藏,导入选项是否保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:17:03