模块清单¶
清单¶
清单文件用于将一个 Python 包声明为 Odoo 模块,并指定模块的元数据。
它是一个名为 __manifest__.py
的文件,其中包含一个单独的 Python 字典,每个键用于指定模块的元数据。
{
'name': "A Module",
'version': '1.0',
'depends': ['base'],
'author': "Author Name",
'category': 'Category',
'description': """
Description text
""",
# data files always loaded at installation
'data': [
'views/mymodule_view.xml',
],
# data files containing optionally loaded demonstration data
'demo': [
'demo/demo_data.xml',
],
}
可用的清单字段包括:
名称
(str
, 必填)模块的可读名称
版本``(``str
)该模块的版本应遵循 语义化版本控制 规则
描述
(str
)模块的扩展描述,使用 reStructuredText 格式
作者
(str
)模块作者名称
网站
(str
)模块作者的网站网址
许可``(``str
,默认值:LGPL-3
)模块的分发许可。可能的取值:
GPL-2
GPL-2 或任何后续版本
GPL-3
GPL-3 或任何后续版本
AGPL-3
LGPL-3
其他 OSI 已批准的许可证
`OEEL-1`(Odoo 企业版许可协议 v1.0)
OPL-1
(Odoo 专有许可协议 v1.0)其他专有
类别
(str
,默认:未分类
)模块在 Odoo 中的分类类别,表示该模块的大致业务领域。
虽然使用 现有类别 是推荐的做法,但该字段是自由格式的,未知的类别会按需自动创建。可以使用分隔符
/
创建类别层次结构,例如Foo / Bar
将创建一个类别Foo
,一个作为Foo
子类别的Bar
类别,并将Bar
设置为模块的类别。依赖项``(``列表(字符串)
)在加载此模块之前必须加载的 Odoo 模块,要么是因为此模块使用了它们创建的功能,要么是因为它修改了它们定义的资源。
当一个模块被安装时,它的所有依赖项会在它之前被安装。同样地,在一个模块被加载之前,它的依赖项也会被先加载。
注解
模块 base
在任何 Odoo 实例中都会被安装。但您仍然需要将其指定为依赖项,以确保当 base
更新时,您的模块也能得到更新。
数据
(列表(字符串)
)数据文件列表,这些文件必须与模块一起始终安装或更新。从模块根目录开始的路径列表
演示``(``列表(字符串)
)仅在 演示模式 下安装或更新的数据文件列表
auto_install``(``bool
或list(str)
,默认值:False
)如果为
True
,则在所有依赖项都已安装的情况下,该模块将自动安装。它通常用于“链接模块”,实现两个原本独立模块之间的协同集成。
例如
sale_crm
依赖于sale
和crm
,并设置为auto_install
。当sale
和crm
都被安装时,它会自动将 CRM 活动跟踪添加到销售订单中,而sale
和crm
本身并不知道彼此的存在。如果这是一个列表,它必须包含依赖项的一个子集。一旦该子集中的所有依赖项都被安装,此模块将自动被安装。其余的依赖项也将被自动安装。如果列表为空,则无论其依赖项如何,此模块都将被自动安装,这些依赖项也将被安装。
外部依赖项
(字典(键=列表(字符串))
)一个包含 Python 和/或二进制依赖项的字典。
对于 Python 依赖项,此字典必须定义
python
键,并应将要导入的 Python 模块列表分配给它。对于二进制依赖项,此字典必须定义
bin
键,并应将二进制可执行文件名的列表分配给它。如果主机上未安装 Python 模块,或者在主机的 PATH 环境变量中找不到二进制可执行文件,则该模块将不会被安装。
应用
(布尔值
, 默认:False
)该模块是否应被视为一个完整的应用程序(
True
),还是仅作为一个技术模块(False
),用于为现有应用程序模块提供额外功能。资源
(字典
)一个关于如何在各种资源包中加载所有静态文件的定义。有关如何描述资源包的更多详细信息,请参阅 assets 页面。
可安装``(``布尔
默认值:True
)用户是否应该能够从 Web UI 安装该模块。
维护者
(str
)该模块的维护人员或实体,默认情况下认为作者是维护者。
{pre_init, post_init, uninstall}_hook``(``str
)模块安装/卸载的钩子,其值应为一个字符串,表示模块
__init__.py
中定义的函数名称。pre_init_hook
接受一个游标作为其唯一参数,此函数在模块安装之前执行。post_init_hook
接收一个游标和一个注册表作为参数,该函数在模块安装后立即执行。uninstall_hook
接受一个游标和一个注册表作为参数,该函数在模块卸载后执行。这些钩子应在以下情况下使用:当为该模块设置/清理所需的操作通过接口极其困难或无法实现时。
激活
(bool
)已弃用。请改用
auto_install
。