首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Odoo继承视图无法设置不可见属性

基础概念

Odoo 是一个开源的企业资源规划(ERP)系统,它使用 Python 编写,并基于 Web 技术构建。Odoo 的视图继承机制允许开发者扩展现有视图,而不必从头开始创建新视图。视图继承通过 ir.ui.view 模型实现,可以在 XML 文件中定义。

相关优势

  1. 代码复用:通过继承现有视图,可以避免重复编写相同的代码。
  2. 模块化:视图继承使得模块之间的耦合度降低,便于维护和扩展。
  3. 灵活性:可以根据需要动态修改视图,适应不同的业务需求。

类型

Odoo 视图继承主要有以下几种类型:

  1. 完全替换:使用 mode="primary" 替换整个视图。
  2. 扩展:使用 mode="extension" 在现有视图基础上添加新的元素。
  3. 嵌入:使用 mode="嵌入" 将一个视图嵌入到另一个视图中。

应用场景

视图继承广泛应用于以下场景:

  1. 模块扩展:当你需要在不修改核心模块的情况下添加新功能时。
  2. 多语言支持:通过继承视图,可以轻松地为不同语言添加翻译。
  3. 定制化需求:根据客户的具体需求,定制特定的视图。

问题分析

在 Odoo 中,如果你无法设置视图中某个元素的不可见属性(invisible),可能是以下几个原因:

  1. 继承模式不正确:确保你在正确的模式下继承视图。例如,如果你使用 mode="extension",则只能添加新元素,而不能修改现有元素的属性。
  2. 权限问题:检查当前用户是否有权限修改该视图或元素。
  3. 代码逻辑错误:可能在继承视图的代码中存在逻辑错误,导致 invisible 属性未被正确设置。

解决方法

假设你有一个继承自 base.view_partner_form 的视图,并希望设置某个字段不可见,可以按照以下步骤操作:

  1. 定义继承视图
代码语言:txt
复制
<record id="view_partner_form_inherit" model="ir.ui.view">
    <field name="name">base.view.partner.form.inherit</field>
    <field name="model">res.partner</field>
    <field name="inherit_id" ref="base.view_partner_form"/>
    <field name="arch" type="xml">
        <xpath expr="//field[@name='your_field_name']" position="attributes">
            <attribute name="invisible">1</attribute>
        </xpath>
    </field>
</record>
  1. 确保继承模式正确:在上面的例子中,使用了 xpath 来定位并修改现有字段的 invisible 属性。
  2. 检查权限:确保当前用户有权限修改该视图。可以通过调整用户组的权限来实现。
  3. 调试代码:如果上述方法无效,可以在继承视图的代码中添加调试信息,检查 invisible 属性是否被正确设置。

参考链接

通过以上步骤,你应该能够解决 Odoo 继承视图中无法设置不可见属性的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo 给列表视图添加按钮实现数据文件导入

js_class="estate_customer_tree" limit="15">,其中estate_customer_tree为下文javascript中定义的组件,实现添加自定义按钮;limit 设置列表视图每页最大显示记录数...,刷新当前页面的情况下,无法重复导入相同的文件 self.$('.o_estate_customer_upload .o_input_file').val('');...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义的隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义的按钮模版名称...> 按钮视图模板定义 odoo14\custom\estate\static\src\xml\estate_customer_tree_view_buttons.xml <?...,上下文节点的命名属性将被设置属性元素的值(如果已经存在则替换,如果不存在则添加) 注意:参考官方文档,t-extend这种继承方式为旧的继承方式,已废弃,笔者实践了最新继承方式,如下 <?

3.5K30

odoo ORM API学习总结兼orm学习教程

states (dict) –将state值映射到UI属性-值对列表的字典映射,简单说就是允许用户界面依据state字段的值来动态设置对应字段的UI属性,因此,它要求存在一个state字段并在视图中使用...odoo.fields.Char类型 odoo.fields.active 切换记录的全局可见性,如果active设置为False,则记录在大多数搜索和列表中不可见。...注意:返回字典key包含Odoo系统自动生成的模型表字段:create_uid,create_date,write_date,write_uid,id 字段/视图(Fields/Views)s Model.fields_get...(bool) – 设置为True以包含上下文操作 submenu – 已弃用 返回 请求视图的组成(包括继承视图和扩展) 返回类型 dict 引发 AttributeError...说明: 以上为官方文档给出的案例,笔者实践发现是无法直接运行的。 模型继承继承父类中的所有属性,会拷贝字段、属性和方法。

13.5K10
  • odoo 开发入门教程系列-继承(Inheritance)

    在介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法的行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化的方式扩展现有模型。...目标: 在用户表单视图中显示与销售人员关联的avaliable房产列表其用户表单视图 Odoo提供了视图继承,其中子“扩展”视图应用于根视图之上,而不是就地修改现有视图(通过重写它们)。...当匹配单个元素时,可以直接在要查找的元素上设置position属性。...练习--添加字段到用户视图 添加property_ids字段到 base.view_users_form 中新建的notebook页 提示: 可以在 这里找到继承用户视图的示例。

    2.2K20

    odoo 权限管理学习总结

    -> Users & Companies -> Groups),并为用户分配不同的用户组,及设置相关权限(菜单权限,视图权限,访问权限,记录规则) 此外,为了更方便的管理用户组,odoo还支持对用户组...用户组和用户组的关系:用户组可以被用户组继承(伪继承),当继承某个用户组时,本组用户也会自动加入继承的用户组。...可以利用该特性实现隐藏对象需求,比如针对一些常规下不需要显示的特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段在视图中的显示。..."/> 验证,发现界面上,未授权上述框选权限的用户已经看不到上述字段了 注意:通过为当前视图中目标字段添加groups属性实现的权限控制仅作用于当前视图,如果希望当前视图模型(Model)的所有视图中,...,添加groups属性即可。

    10.2K20

    Odoo开发指北 01 初识Odoo

    继承开发 Odoo提供了大量现成的模块给我们使用,但是某些情况下,我们需要制定符合自己需求的功能模块。Odoo开发的一条黄金准则是——不要修改现有的模块,以免改动后的代码与原有模块产生混淆。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它的基础上进行修改、扩展,生成自己的模块。...然后使用自己的模块:把自己的模块路径设置odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...static:静态资源文件,如css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令   使用...构建视图对象:主要是list、tree、form、search视图

    2.4K30

    odoo 开发入门教程系列-一些用户界面

    服务,查看效果 字段,属性视图(Fields, Attributes And View) 到目前为止,我们只对房产广告使用了通用视图,但在大多数情况下,我们希望对视图进行微调。...我们看到一些属性,如required=True,会影响数据库中的表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。...查找一些合适的属性 (查看字段) 来: 设置售价为只读 阻止复制可用日期和售价 修改 odoo14\custom\estate\models\estate_property.py 中EstateProperty...selling_price = fields.Float('selling price', digits=(8, 2), readonly=True, copy=False) 重启服务和并刷新浏览器界面,我们可以看到无法设置任何售价...False 练习--为active字段添加设置 为active字段设置默认值 为 active 字段设置适当的属性值,让它不再出现在页面。

    3K30

    Odoo 菜单定义和修改学习总结

    odoo菜单定义和修改学习总结 环境 odoo-14.0.post20221212.tar 定义菜单 方式1: 说明: id 菜单外部ID name 如果指定name,则: 如果为菜单设置了action,则获取action record定义中name字段的值作为菜单name属性的值 如果未设置菜单action...其中图标路径,一般是相对于模块根目录的相对路径 sequence 设置菜单展示顺序。该属性值越大,越靠右、靠下方展示。也就是说,菜单从左往右,从上到下,对应sequence属性值从小到大。... 方式2:通过parent来设置菜单层级 <?xml version="1.0"?...这种修改方式之所以特殊,是因为它不修改原有菜单的定义,而是通过重新定义菜单来修改,可以简单的类比为“继承”,具体做法如下: 定义一个新的菜单,将其id属性设置为原有菜单所在模块名称及其

    1.4K10

    odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)

    要创建计算的字段,请创建字段并将其属性compute设置为方法的名称。计算方法应为self中的每个记录设置计算的字段的值。...这正是我们期望的,因为不支持用户设置值。 某些情况下,可以直接设置值可能会很有用。在我们的房产示例中,我们可以定义报价的有效期间并设置有效日期。我们希望能够设置有效期间或日期,并且两者之间相互影响。...方法设置字段的相关性。...fields.Boolean('Is Ongoing', compute='_compute_is_ongoing', search='_search_is_ongoing') 另一个解决方法是使用store=True属性存储该字段...s" % record.partner_id.name 每次partnername被改变, 自动为所有引用了它的记录更新 description 当数以百万计的记录需要重新计算时,这可能会很快会变得无法承受

    3.2K30

    odoo 开发入门教程系列-基本视图

    在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是在带有操作和菜单的XML文件中定义的。...,如下: python odoo-bin --addons-path=custom,odoo/addons -r myodoo -w test123 -d odoo -u estate --dev xml.../> Odoo生成的默认搜索视图提供了按name筛选的快捷方式。...筛选器必须具有以下属性之一: domain:将给定domain添加到当前搜索 dontext:添加一些context到当前搜索,使用group_by按给定字段名称对结果分组。...例如,选择类型为“服务“或“单价”介于1000和2000之间的产品 ['|', ('product_type', '=', 'service'), '!'

    3.3K40

    odoo 开发入门教程系列-QWeb简史

    Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。...目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...在本例中,它用于将模板的name设置为kanban-box :oe_kanban_global_click让可点击,以打开记录...练习--添加默认分组 使用合适的属性对房产分组,默认按类型分组。你必须阻止拖拽和删除。...修改odoo14\custom\estate\views\estate_property_views.xml estate_property_kanban,给增加属性

    2.1K20

    odoo Actions学习总结

    所有Action都有两个强制属性: type 当前Action的类别,决定可以使用哪些字段以及如何解释action name action的名称,在客户端的界面中显示对action的简短用户可读描述...Bindings(绑定) 除了两个强制属性外,所有action有用于在任意模型的上下文菜单中显示动作的可选属性: binding_model_id 指定action绑定的模型,格式:moduleName.modelName...注解对于“Server Actions”,请使用model_id binding_type 指定绑定的类型,主要是放置action的上下文菜单 action (默认) 设置Action将出现在绑定模型的...report 设置Action将出现在绑定模型的Print上下文菜单。...默认值为“Unnamed”,注意:如果name值为空字符串,则默认为 Unnamed 例如,要使用列表和表单视图打开客户(设置了customer标志的partner): { "type": "ir.actions.act_window

    2.6K30

    ​在tinycolinux上编译odoo8

    最后,odoo采用python,要谈到语言的优异对比足于掀起大论战了,我不重复那些聚焦语言内部如何pythonic的老话题,只讲几条外部特征: 1,C系和原生程序,是基本所有现实中可见系统实现的基石,但...因为这样做稍后在安装完odoo在base中建立odoo数据库时会提示:new encoding (UTF8) is incompatible with the encoding of the template.../addons,/usr/local/pgsql/data/addons/8.0 (设置这个,会导致 http://xxx:/web/static.... full.css 404) data_dir...怎么应用和操作又是一种境地了,odoo所有的操作中,数据都有固定的视图,一条博文和一个文件是一样的,一个产品和一个电脑是一样的,faint,我记得怎么进管理模式,忘了。...----- (此处设回复,扫码到微信参与留言,或直接点击到原文) [qrcode.png]

    1.4K40

    从安装到使用——Odoo常见问题及故障处理

    安装问题 1.浏览器打开IP地址,无法访问 Odoo(白屏没有结果)? 您的服务器对应的安全组80端口没有开启(入规则),导致浏览器无法访问到服务器的任何内容。...3.为什么在设置面板看不到 Odoo 更新(Updates)操作功能? 此功能只能在开发者模式下使用,请确保你的 Odoo 控制台是否已经切换成开发者管理模式 4.如何删除 Odoo 演示数据?...保存并重启 Nginx 服务 3.访问Odoo总是出现数据库设置提醒? 这个提醒的是要求你尽快给数据库设置一个高强度的管理员密码,如果设置将面临很大的风险。一旦设置后,此界面就不会再弹出了。...4.无法通过-sftp-上传文件到odoo程序目录问题无法通过 SFTP 上传文件到Odoo程序目录问题 由于部分 Ubuntu系统 默认创建了默认用户名 ubuntu ,ubuntu为普通用户没有对odoo...7.数据库服务无法启动 数据库服务无法启动最常见的问题包括:磁盘空间不足,内存不足,配置文件错误。

    6.3K30
    领券