第 2 章:一个新应用¶
本章的目的是为创建一个全新的 Odoo 模块奠定基础。我们将从零开始,完成让 Odoo 识别模块所需的最低要求。在接下来的章节中,我们将逐步添加功能,以构建一个现实的业务案例。
房地产广告模块¶
我们的新模块将涵盖一个非常特定的业务领域,因此并未包含在标准模块集中:estate。需要注意的是,在开发新模块之前,最好先确认 Odoo 是否已经提供了满足该特定业务需求的方法。
以下是包含一些广告的主要列表视图的概览:
表单视图的顶部区域总结了房产的重要信息,例如名称、房产类型、邮政编码等。第一个标签页包含描述房产的信息:卧室数量、生活区面积、车库、花园等。
第二个标签页列出了房产的报价。我们可以看到潜在买家可以提出高于或低于预期售价的报价,是否接受报价由卖家决定。
以下是一个展示该模块工作流程的快速视频。
希望这个视频能尽快录制完成 :-)
准备插件目录¶
参考 :与此主题相关的文档可以在 清单文件 中找到。
注解
目标 :本节的目标是让 Odoo 识别我们的新模块,目前它只是一个空壳。它将出现在应用列表中:
创建模块的第一步是创建其目录。在 tutorials 目录中,添加一个新目录 estate 。
一个模块必须至少包含 2 个文件: __manifest__.py 文件和 __init__.py 文件。 __init__.py 文件目前可以保持为空,我们将在下一章中再讨论它。另一方面, __manifest__.py 文件必须描述我们的模块,不能为空。它唯一必需的字段是 name ,但通常包含更多信息。
以 CRM 文件 为例。除了提供模块的描述( name 、 category 、 summary 、 website …)外,它还列出了其依赖项( depends )。依赖项意味着 Odoo 框架将确保在我们的模块安装之前安装这些模块。此外,如果其中一个依赖项被卸载,那么我们的模块以及 任何依赖它的其他模块也将被卸载 。想想您最喜欢的 Linux 发行版包管理器( apt 、 dnf 、 pacman …):Odoo 的工作方式相同。
Exercise
创建所需的插件文件。
创建以下文件夹和文件:
/home/$USER/src/tutorials/estate/__init__.py/home/$USER/src/tutorials/estate/__manifest__.py
__manifest__.py 文件应仅定义模块的名称和依赖项。目前唯一必要的框架模块是 base 。
重新启动 Odoo 服务器并进入应用页面。点击更新应用列表,搜索 estate ,然后……哇哦,你的模块出现了!没出现?可能需要尝试移除默认的“应用”过滤器 ;-)
警告
记得启用 开发者模式 ,正如前一章所述。否则你将看不到 更新应用列表 按钮。
Exercise
将您的模块变成一个“应用”。
在您的 __manifest__.py 中添加适当的键,以便在启用“应用”过滤器时显示该模块。
你甚至可以安装这个模块!但显然它只是一个空壳,所以不会出现任何菜单。
一切顺利吗?如果是的话,那就让我们 创建我们的第一个模型 吧!