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

如何在Odoo 10中对用户隐藏图表视图模式

在Odoo 10中对用户隐藏图表视图的解决方案

嘿,我来帮你搞定Odoo 10里给用户隐藏图表视图的问题,这里有几个靠谱的技术方案,你可以根据自己的需求选择:

方案1:通过权限组精准控制视图访问

这是最直接的原生方法,利用Odoo的权限组体系来限制图表视图的可见性:

  • 先开启开发者模式,进入「设置 -> 技术 -> 视图 -> 视图」
  • 在视图列表里筛选「视图类型」为「图表」,找到你要限制的模型对应的图表视图
  • 打开该视图,切换到「访问权限」标签页:
    • 如果想让只有特定组能看到,就移除现有组,添加目标权限组(比如管理员组或你自定义的组)
    • 如果想隐藏给大部分用户,只保留极少数有权限的组即可

方案2:通过XML继承隐藏图表切换按钮

如果只是不想让用户看到切换到图表视图的入口(工具栏里的图表按钮),可以用视图继承来隐藏它:
创建一个自定义模块,在XML文件里添加以下代码(记得替换成你自己的模型和视图ID):

<odoo>
  <data>
    <!-- 继承目标模型的列表视图,替换成实际的视图ID -->
    <record id="inherit_sale_order_list" model="ir.ui.view">
      <field name="name">sale.order.list.inherit</field>
      <field name="model">sale.order</field>
      <field name="inherit_id" ref="sale.view_order_tree"/>
      <field name="arch" type="xml">
        <!-- 定位到图表按钮,设置不可见 -->
        <xpath expr="//button[@name='graph']" position="attributes">
          <!-- 若要针对特定组,改成 groups="your_module.your_restricted_group" -->
          <attribute name="invisible">1</attribute>
        </xpath>
      </field>
    </record>
  </data>
</odoo>

安装这个模块后,目标视图的工具栏里就不会再显示图表按钮,用户自然无法切换到图表视图。

方案3:通过Python代码实现更灵活的权限控制

如果需要根据用户的特定属性(比如部门、角色等)动态控制视图可见性,可以通过重写视图的权限检查逻辑来实现:
在自定义模块的Python文件里添加以下代码:

from odoo import models, api

class IrUiView(models.Model):
    _inherit = 'ir.ui.view'

    @api.multi
    def check_access_rights(self, operation, raise_exception=True):
        # 先调用父类的权限检查逻辑
        res = super(IrUiView, self).check_access_rights(operation, raise_exception=False)
        
        # 如果是读取操作,且当前视图是图表视图
        if res and operation == 'read' and self.type == 'graph':
            # 这里写你的自定义判断逻辑,比如只允许管理员组访问
            if not self.env.user.has_group('base.group_system'):
                res = False
        
        # 按照Odoo的规则返回结果,需要抛出异常时交给父类处理
        return res if not raise_exception else super(IrUiView, self).check_access_rights(operation, raise_exception)

这个方法会让不符合条件的用户完全无法访问图表视图,从数据库层面就限制了权限。

注意事项

  • 操作前记得备份数据,尤其是修改核心视图或代码时
  • 确保开启开发者模式来获取准确的视图ID和模型信息
  • 自定义模块要经过测试后再部署到生产环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:19:44