Odoo安装教程3-创建新的插件模块第二讲
创建模块目录和声明文件
现在就准备好了~/odoo-dev/custom-addons 目录,已正确添加至 addons 路径,Odoo 也就可以找到这里的模块。Odoo 自带一个 scaffold 命令可自动创建新模块目录,其中会包含基础
结构。此处并不会使用该命令,而是手动创建。通过以下命令可以了解 scaffold 用法:
~/odoo-dev/odoo/odoo-bin scaffold --help
Odoo 模块目录需包含一个__manifest__.py 描述性文件,同时还需要是可导入的包,所以还应包含__init__.py 文件。
“ 小贴士:在老版本中,该描述性文件为__openerp__.py 或__odoo__.py,这些名称已过时但仍可使用。”
模块目录名是其技术名称,我们使用 library_app,技术名称应是有效 Python 标识符,即以字母开头且仅能包含字母、数字和下划线。执行如下步骤来初始化新模块:
1、通过命令行,我们可以添加一个空的__init__.py 文件来初始化模块:
mkdir -p ~/odoo-dev/custom-addons/library_app
touch ~/odoo-dev/custom-addons/library_app/__init__.py
2、下面添加声明文件,其中应包含一个 Python 字典,有几十个可用属性。其中仅 name 属性为必填,但推荐同时添加 description 和 author 属性。在__init__.py 同级创建
__manifest__.py 文件,添加以下内容:
{
'name': 'Library Management',
'description': 'Manage library book catalogue and lending.',
'author': 'www.oscg.cn',
'depends': ['base'],
'application': True,
}
depends 属性可以是一个包含所用到的模块列表。Odoo 会在模块安装时自动安装这些模块,这不是强制属性,但建议使用。如果没有特别的依赖,可以添加内核 base 模块。应注意将所有依赖都在此处列明,否则,模块会因缺少依赖而报错或出现加载错误(如果碰巧依赖模块在随后被加载了)。
我们的应用无需依赖其它模块,所以本处使用了 base。为保持简洁,这里仅使用了几个基本描述符键:
⚫ name:插件模块标题字符串
⚫ description:功能描述长文件,通常为 RST 格式
⚫ author:作者姓名,本处为一个字符串,可以是逗号分隔的一系列姓名
⚫ depends:一个依赖插件模块列表,在模块安装时会先安装这些插件
⚫ application:一个布尔型标记,代表模块是否在应用列表中以 app 展现
description 可由模块顶层目录中的 README.rst 或 README.md 代替,如果两者都不存在,将使用声明文件中的 description。在真实场景中,建议也同时使用其它属性名,因它们与 Odoo 的应用商店有关:
⚫ summary:显示为模块副标题的字符串
⚫ version::默认为 1.0,应遵守版本号规则。建议在模块版本号前加上 Odoo 版本,如
12.0.1.0
⚫ license::默认为 LGPL-3
⚫ website:了解模块更多信息的 URL,可以帮助人们查看更多文档或提供文件 bug 和建议的
跟踪
⚫ category::带有模块功能性分类字符串,缺省为 Uncategorized。已有分类可通过安全组表
单(位于 Settings > Users & Companies > Groups)的 Application 字段下拉列表查看
(需开启调试模式)
还有以下描述符键:
⚫ installable:默认为 True,但可以通过设置为 False 来禁用模块
⚫ auto_install:若设置为 True,在其依赖已安装时会自动安装,用于胶水模块,用于同一实例上两个模块安装后功能的连接。