谢潮聪 第8章:计算域和onchanges 第 8 章:Computed Fields And Onchanges 模型之间的关系是任何 Odoo 模块的关键组成部分。任何业务案例的建模都离不开它们。然而,我们可能希望在给定模型内的字段之间建立联系。有时,一个字段的值由其他字段的值决定,有时,我们希望帮助用户输入数据。 计算字段和 onchanges 概念支持这些情况。虽然本章在技术上并不复杂,但这两个概念的语义非常重要。这也是我们第一次编...
谢潮聪 第7章:模型之间的关系 第 7 章:模型之间的关系 上一章介绍了为包含基本字段的模型创建自定义视图。然而,在任何实际业务场景中,我们都需要不止一个模型。此外,模型之间的链接也是必要的。我们可以轻松想象一个模型包含客户,另一个模型包含用户列表。您可能需要在任何现有业务模型上引用客户或用户。 在我们的房地产模块中,我们需要房地产的以下信息: 购买房产的客户 出售房产的房地产经纪人 房产类型:住宅、公寓、顶层公寓、城堡.......
谢潮聪 第6章:基本视图 第 6 章:基本视图 我们在上一章中已经看到Odoo能够为给定模型生成默认视图。在实践中,默认视图对于业务应用程序是绝对不可接受的。相反,我们至少应该以合理的方式组织各个字段。 视图是在 XML 文件中定义的,其中包含操作和菜单。它们是ir.ui.view模型的实例。 在我们的 real estate 模块中,我们需要以合理的方式组织字段: 在 List 视图中,我们想要显示的不仅仅是Name。 ...
谢潮聪 第5章:最后,一些UI可以玩 第5章:最后,一些UI可以玩 现在我们已经创建了新模型及其相应的访问权限,现在是时候与用户界面交互。 在本章的结尾,我们将创建几个菜单以访问默认列表和表单视图。 在第4章:安全性-简介中,我们通过CSV文件添加了数据。在要加载的数据格式简单时CSV很方便。当格式更复杂时(例如,加载视图或电子邮件模板的结构),我们使用XML格式。例如 此帮助字段包含 HTML 标记。虽然可以通过 CSV 文件加载此...
谢潮聪 第4章:安全性-简介 第 4 章:安全性 - 简介 在上一章中,我们创建了第一个表用于存储业务数据。在Odoo这样的商业应用程序中,第一个要考虑的问题是谁可以访问数据。Odoo提供允许访问的安全机制,允许特定用户访问数据。 Odoo是一个高度数据驱动的系统。尽管行为是使用Python代码自定义的,但 module 的价值在于它在加载时设置的数据。加载数据的一种方法是通过 CSV 文件。一个例子是在安装基础模块时加载的国...
谢潮聪 第3章:模型和基本字段 第 3 章:模型和基本字段 在上一章的结尾,我们能够创建Odoo模块。然而,在这一点上,它仍然是一个空壳,不允许我们存储任何数据。在我们的real estate模块中,我们想要存储与属性(名称、描述、价格、居住面积等)。Odoo 框架提供工具来促进数据库交互。 在继续练习之前,请确保已安装模块,即它必须在 Apps 列表中显示为 'Installed'。 Odoo的一个关键组件是ORM层。此层避免...
谢潮聪 第2章:新应用程序 第 2 章:新应用程序 本章的目的是为创建全新的Odoo模块奠定基础。我们将从头开始,从最低要求开始,使我们的模块被Odoo识别。 在接下来的章节中,我们将逐步添加功能以构建现实的业务案例。 我们的新模块将涵盖一个非常具体的业务领域:房地产广告模块。 以下是广告的主列表视图 表单视图的顶部区域汇总了属性的重要信息,例如名称、属性类型、邮政编码等。第一个选项卡描述了:卧室,起居区,车库,花园… 第二...
谢潮聪 第1章:架构概述 第 1 章:架构概述 Odoo遵循多层架构。多层架构是开发人员在开发过程当中面对复杂且易变的需求采取的一种以隔离控制为主的应对策略。每一层都可以单独部署。将整个项目自下而上的分为:数据持久(数据访问)层,逻辑(业务)层,UI(展现)层。 Odoo的展现层是HTML5、JavaScript和CSS的组合,逻辑层使用Python语言编写,数据持久层只支持将PostgreSQL作为 RDBMS。 为了完...
徐朋朋 odoo-ORM2 本文参考: ORM API — Odoo 18.0 documentation Odoo 环境(Environment) odoo.api.Environment 类在 Odoo 中用于存储和管理与 ORM 相关的各种上下文数据。环境类在 Odoo 中充当了一个数据容器,提供了对数据库、用户、上下文等信息的访问。 构造函数 class odoo.api.Environment(cr, uid, c...
徐朋朋 Odoo 模型继承与扩展机制解读 本文参考: ORM API — Odoo 18.0 documentation Odoo 模型继承与扩展机制解读 Odoo 提供了三种主要方式来扩展模型,每种方式都有特定的使用场景和机制: 传统继承(Classical Inheritance) 新模型基于现有模型创建,继承原始模型的字段、方法和元信息,但原模型保持不变。 模型扩展(Extension) 直接扩展现有模型,将新字段和方法添加到现有模...
徐朋朋 odoo-ORM1 本文参考: ORM API — Odoo 18.0 documentation 1、ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的...
马国华 第七章:模型间关系 Odoo模型间关系: Odoo是一款模块化、高度可定制的开源ERP系统。其核心架构基于Python的ORM(对象关系映射),通过模型(Model)来实现数据库表的操作与关联。在Odoo中,模型间关系是开发中不可或缺的部分,灵活的关系设置可以帮助我们更高效地处理数据。本篇博客将从基础到高级,系统介绍Odoo模型间的关系及其应用场景。 一、Odoo中的模型间关系类型 Odoo支持四种主要的关系类型,分...