第 2 章:一个新的应用¶
本章的目的是为创建一个完全新的 Odoo 模块奠定基础。我们将从零开始,仅包含让 Odoo 识别该模块所需的最基本内容。在后续章节中,我们将逐步添加功能,构建一个真实的业务案例。
房地产广告模块¶
我们的新模块将涵盖一个非常具体的业务领域,因此未包含在标准模块集合中:房地产。值得注意的是,在开发新模块之前,最好先确认 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
中添加适当的键,以便当启用“Apps”筛选器时,该模块会显示出来。
你可以安装这个模块!但显然它只是一个空壳,因此不会有任何菜单出现。
一切顺利吗?如果没问题,那么让我们来 创建第一个模型!