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

odoo在不为空时将字段设为只读

Odoo是一种开源的企业资源规划(ERP)软件,它提供了一套完整的管理解决方案,包括销售、采购、库存、财务、人力资源等模块。在Odoo中,可以通过设置字段的属性来控制其在不同情况下的行为,包括是否只读。

当字段不为空时,可以通过设置字段的readonly属性将其设为只读。只读字段在表单中将无法编辑,但仍然可以查看其值。这在某些情况下非常有用,例如当字段的值由其他字段计算得出,或者字段的值是由系统自动生成的。

设置字段为只读的优势是可以防止用户在特定情况下误操作或者修改不应该被修改的字段。这有助于确保数据的准确性和一致性。

odoo中的只读字段可以应用于各种场景。例如,在销售订单中,当订单状态为已确认时,可以将交货日期字段设为只读,以防止用户在确认后修改交货日期。在人力资源模块中,可以将员工入职日期字段设为只读,以确保该字段只能在员工创建时设置一次。

对于odoo用户,可以使用Odoo的模块来实现字段的只读设置。具体而言,可以使用Odoo的模块"base"中的fields模块来定义字段,并在字段定义中设置readonly属性为True。

腾讯云提供了一系列与云计算相关的产品,其中包括云服务器、云数据库、云存储等。这些产品可以帮助用户在云环境中部署和管理Odoo应用。您可以访问腾讯云的官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

请注意,本回答中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,因为根据问题要求,不允许提及这些品牌商。

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

相关·内容

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

当数据链接到视图,我们将它们添加到views文件夹中 本章,我们通过XML文件加载我们第一个action和菜单。Actions 和菜单为数据库中的标准记录。...注解: 当程序很注重性能,CSV格式优先于XML格式。这是因为,odoo中加载CSV文件比加载XML文件更快。...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复,某些字段不能被拷贝 我们的房产业务案例中,我们希望:: 售价只读(往后将自动填充) 当记录重复,可用日期和售价不能被拷贝...其他属性也影响视图或提供默认值。 练习 -- 添加一些属性到字段。...复制记录,可用日期应为

2.9K30

odoo 开发入门教程系列-模型和基本字段

最重要的属性为 _name,该属性定义了modelodoo系统中的属性。...=custom,odoo/addons -r myodoo -w test123 -d odoo -u estate -u estate 表示更新 estate 模块,也就是说ORM应用数据库模式变更...有两大类领域字段:‘简单’字段--直接存储模型表中的原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型的记录...现在假设要求 name 和expected_price字段不为null,所以需要对其修改,如下,添加字段属性配置required=True name = fields.Char(required=True...required (bool, default: False) 如果为 True, 表示该字段值不能为。创建记录必须拥有默认值或给定的值。

2.3K30

odoo 权限管理学习总结

(只加载一次,安装或者更新模块),则可以noupdate设置为1。...可以利用该特性实现隐藏对象需求,比如针对一些常规下不需要显示的特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段视图中的显示。...--略--> 查看效果 注意: 实践发现,通过界面点击,访问一些菜单界面,会在菜单访问URL(参见菜单访问自动生成的URL)中自动添加model,...如果当前用户不在列出的组中,他无权访问该字段: 将自动从请求的视图中删除受限制的字段 从fields_get()响应中删除受限制的字段 尝试(显式的)读取或写入受限字段会导致访问错误 修改estate...> odoo14\custom\estate_role\__init__.py 文件内容为 odoo14\custom\estate_role\__manifest__.py { "name"

10.1K20

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

例如states={'done':[('readonly',True)]},表示当state值为done,将用户界面states所在字段设置为只读(仅针对UI层面) 用法举例: state = fields.Selection...copy (bool) – 当记录重复,该字段值是否被拷贝(使用 ORM copy()方法复制并生成新记录,不复制该字段的值)。...在出现字段的表单视图中,当修改某个给定字段调用该方法。包含表单中存在的值的伪记录上调用该方法。该记录上的字段赋值将自动返回客户端。...SQL中使用CREATE、UPDATE或DELETE,但不使用SELECT(只读取数据库),必须清除缓存。...可以同时继承多个模型,比如: _inherit = ['res.partner', 'md.status.mixin'] 扩展 当使用_inherit但省略_name,新模型替换现有模型,实质上就是原有模型上扩展

13.4K10

odoo 开发入门教程系列-模块交互

我们的案例中,该模块依赖estate 和account,包括房产的发票创建逻辑。采用这种方式,estate和account模块可以独立安装。当两者都安装后,链接模块提供新功能。...说明:__init__.py为 重启服务,安装模块 创建发票 是时候生成发票了。我们希望为estate.property模型添加功能,即我们希望在出售房产添加一些额外的逻辑。...发票行链接到发票的最简单、最有效的方法是创建发票包含所有行。为此account.move创建中包含invoice_line_ids字段,这是一个One2many字段。...下面是一个创建test.model包含一个One2many字段line_ids的简单示例: def inherited_action(self): self.env["test.model"...每个售出的房产都将按照以下条件开具发票: 售价的6% 额外100.00行政费 提示:按照上面的示例创建添加invoice_line_ids。

1.7K10

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

介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法的行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...创建报价,设置房产状态为‘Offer Received’,如果用户试图以低于已存在报价的金额创建报价抛出错误。 提示: 可在vals中获取property_id 字段,但是它是一个int型。...(委托)允许模型的每个记录链接到父模型的记录,并提供对该父记录的字段的透明访问。...odoo中,第一种机制最常用。我们的例子中,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...匹配元素替换为xpath的主体,新主体中出现的任何$0节点替换为原始元素 before 匹配元素之前插入xpath的主体作为同级元素 after 匹配的元素之后插入xpaths的主体

2.2K20

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

自然地我们总面积定义这两者的总和,我们将为此使用计算的字段的概念,即给定字段的值将从其他字段的值中计算出来。 到目前为止,字段已直接存储在数据库中并直接从数据库中检索。字段也可以被计算。...每当修改字段的某些依赖项,ORM使用给定的依赖项来触发字段的重新计算 from odoo import api, fields, models class TestComputed(models.Model...提示: create_date 仅在记录创建被填充,因此需要一个回退,防止创建的奔溃 表单和列表视图中添加字段,正如本章目标中显示的第二个动画中的一样。...通常,定义计算的字段,必须始终牢记性能。要计算的字段越复杂(例如,具有大量依赖项或当计算的字段依赖于其他计算的字段),计算所需的时间就越长。请务必事先花一些时间评估计算的字段的成本。...永远不要使用onchange业务逻辑添加到模型中。这是一个非常糟糕的想法,因为以编程方式创建记录不会自动触发onchanges;它们仅在表单视图中触发。

3.1K30

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

在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是带有操作和菜单的XML文件中定义的。...我们的estate模块中,我们需要以逻辑方式组织字段列表(树)视图中,我们希望显示的不仅仅是名称。 表单视图中,应该对字段进行分组。 搜索视图中,我们必须能够搜索的不仅仅是名称。...练习 -- 添加自定义表单视图 合适的XML文件中为estate.property 定义视图 为了避免每次修改视图都重新启动服务器,可以启动服务器添加--dev-xml,以便只刷新页面就可以查看视图修改...odoo中,domain对记录上的条件进行编码:domain是用于选择模型记录子集的条件列表。每个条件都是一个包含字段名、运算符和值的三元组。...运算顺序 以二元运算为例,从左至右读入表达式,遇到一个操作符后跟随两个操作数,则计算之,然后结果作为操作数替换这个操作符和两个操作数;重复此步骤,直至所有操作符处理完毕。

3.3K40

odoo 开发入门教程系列-一个新应用

Goal: 该小节的目标是让odoo识别我们的新模块,一个空壳。它将显示Apps中 创建模块的第一步:新建一个目录。...为了让开发更轻松,建议首先创建目录 /home/$USER/src/custom,然后该目录中添加待创建的新模块对应的目录(本例为 estate)。...__init__.py 目前可以保持为,下一章我们回过头理它。而 __manifest__.py 文件必须描述模块,且不能保持为。其必不可少的字段为 name, 但通常会包含更多信息。...odoo框架会确保depends中配置的依赖模块我们的模块被安装之前安装。 而且,如果这些模块中的某个依赖被卸载,我们的模块及其它任何依赖它的模块都会被卸载。...服务: python odoo-bin --addons-path=custom,odoo/addons -r myodoo -w test123 -d odoo 验证 浏览器页面中访问Apps, 点击搜索

1.3K10

odoo wizard界面显示带复选框列表及勾选数据获取

wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚的表达本文主题...def default_get(self, fields_list): '''获取wizard 窗口界面默认值,包括记录列表 #因为使用了@api.model修饰符,self为记录集...以下属性皆hasCheckBoxes 为"true"的情况下起作用。 modelName 点击列表复选框,需要访问的模型名称,需要配合modelMethod方法使用,缺一不可。...> 说明: saveSelectionsToSessionStorage 为"true"则表示点击复选框当前选取的记录存到浏览器sessionStorage中,可选 odoo14\custom\estate...odoo14\custom\estate\static\src\js\list_renderer.js 注意:之所以uuid函数定义list_renderer.js中,是为了避免因为js顺序加载问题

5.3K60

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

Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经Odoo见过 看板,其中的记录以卡片状结构显示。...目标: 本节结束创建一个房产的看板视图 我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...本例中,它用于模板的name设置为kanban-box :oe_kanban_global_click让可点击,以打开记录...在上面的示例中,字段name被添加到元素中,但state它之外。当我们需要字段的值但不想在视图中显示它,可以将其添加到元素之外。...注意:best price仅在收到报价展示,而selling price仅在接受报价展示 修改odoo14\custom\estate\views\estate_property_views.xml

2.1K20

ODOO优化层级关系查询效率的方法

Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下 在上面的代码中。 使用字段来关联上层记录。...简单原理 查询分层结构记录,一般的想到的方法是从根目录开始,对每个子目录进行递归查询.然后才能得出具体的分层结构。...(如递归查询文件夹文件) Odoo中为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。...Odoo 应用 我们用Odoo11的product模块作为演示 文件中.看到产品目录(ProductCategory类.15行起)的代码 Odoo11的演示数据中,产品的目录结构一共有6个 我们查询下数据库中的数据...要找Saleable下的所有子目录即可使用 作为条件 结论: Odoo的实际使用中,发现使用parent存储特性的模块主要涉及account, product, stock_location.

2.3K80

odoo 为form表单视图添加chatter功能

odoo14\custom\estate\models\estate_property.py 需要继承mail.thread模型,并为需要追踪的字段设置tracking属性,并设置属性值为真值 #!...\odoo\addons\mail\models\mail_thread.py,其字段命名均以message_开头 tracking 该属性为True或数字,打开针对该属性所属字段的修改日志-...-当所属字段内容发生变化时,系统会将该字段变化前后的值写入日志中,这个数字的大小影响变更日志在日志中的排序。...field name="message_ids"/> 说明:activity_ids 来自mail.activity.mixin模型,类型为models.AbstractModel,定义文件...odoo14\odoo\addons\mail\models\mail_activity.py,其字段命名均以activity_,对应的,模型定义中_inherit 属性也需要添加该模块,如下: _inherity

75320

Python 内置函数大全(上)

mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。...如果 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。...file 对象方法 file.read([size]):size 未指定则返回整个文件,如果文件大小 >2 倍内存则有问题,f.read()读到文件尾返回""(字串)。...返回值 如果iterable的所有元素不为0、''、False或者iterable为,all(iterable)返回True,否则返回False; 注意:元组、列表返回值为True,这里要特别注意...'a', 'b', 'c', 'd')) # 元组tuple,元素都不为或0 True >>> all(('a', 'b', '', 'd')) # 元组tuple,存在一个为的元素 False

53920

odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

买家可以是任何个人,然而,销售人员必须是房产机构的员工(即odoo用户)。 odoo中,有两种我们经常引用的两种模型: res.partner: 一个partner为一个物理实体或者法人实体。...这意味着可以多个"tax"添加到我们的测试模型。...例如,我们通过partner_id字段测试模型上定义了到res.partner模型的链接。...我们的练习中就是这样的:报价总是通过房产获得的。 其次,尽管property_id字段是必需的,但我们没有将其包含在视图中。odoo如何知道我们的报价与哪个房产相关?...当我们通过one2many字段创建记录,为了方便,会自动填充相应的many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!

4.4K40

Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

在上一篇教程中我们提到过,在对模型进行改动之后,需要对模块进行升级才能看到变更后的样子,除了从应用列表中找到模块进行升级外,我们还可以命令行中给 Odoo 的启动命令加上参数 -u todo 指定升级...这个需求跟时间有关,并且时间是流动(一直变化)的,所以我们应该要有一个方法在用户每次打开待办事项之前,把这个结果计算好,并且反馈给用户,还好 Odoo 的 ORM 已经为我们实现了相关的机制——计算字段...PS: 这里我们对 deadline 进行了判断,是因为如果没有设置截止时间,又或者是新建代办事项,这里的 deadline 会是一个布尔值,是不能和时间字符串进行比较的。...is_expired 字段加了进去,并且还加上了属性 invisible,这个属性的作用是当前字段隐藏起来,因为这里我们不希望用户看到这个字段的值,而是结果反映在颜色上。...然后我们再看到 标签多了一个属性 decoration-danger,这个属性可以接受表达式或字段名作为值,当结果为真,这个属性就会生效, TreeView 中满足表达式的行以红色标记

1.3K10
领券