模块清单¶
清单¶
清单文件用于将一个 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',
],
}
可用的清单字段有:
name(str,必填)模块的易读名称
version(str)该模块的版本号,应遵循 semantic versioning 规则
description(str)模块的扩展描述,采用 reStructuredText 格式
author(str)模块作者的名称
website(str)模块作者的网站 URL
license(str,默认值:LGPL-3)模块的分发许可证。可选值:
GPL-2GPL-2 或任何更高版本
GPL-3GPL-3 或任何更高版本
AGPL-3LGPL-3其他经 OSI 认可的许可证
OEEL-1(Odoo 企业版许可证 v1.0)OPL-1(Odoo 专有许可证 v1.0)其他专有许可证
category(str,默认值:Uncategorized)在 Odoo 中的分类类别,即模块大致的业务领域。
尽管建议使用 existing categories 中的现有类别,该字段并无限制,未知类别会即时创建。可以使用分隔符
/创建类别层级,例如Foo / Bar会创建类别Foo、作为Foo子类别的类别Bar,并将Bar设为该模块的类别。depends(list(str))必须在本模块之前加载的 Odoo 模块,可能因为本模块使用了它们创建的功能,也可能因为它修改了它们定义的资源。
安装模块时,其所有依赖会先于它安装。同样,依赖也会先于模块加载。
Note
模块 base 在任何 Odoo 实例中都始终会安装。但仍需将其指定为依赖,以确保在 base 更新时您的模块也会被更新。
data(list(str))必须随模块始终安装或更新的数据文件列表。相对于模块根目录的路径列表
demo(list(str))仅在 演示模式 下安装或更新的数据文件列表
auto_install(bool或list(str),默认值:False)若为
True,当其所有依赖都已安装时,该模块将自动安装。它通常用于实现两个相互独立模块之间协同集成的“链接模块”。
例如
sale_crm同时依赖sale和crm,并被设为auto_install。当sale和crm都安装后,它会自动为销售订单添加 CRM 活动追踪功能,而sale和crm彼此互不知晓。若为列表,则必须包含依赖项的一个子集。只要该子集中的依赖全部安装,本模块就会自动安装,其余依赖也会随之自动安装。若列表为空,则无论其依赖如何,本模块都将始终自动安装,其依赖也会一并安装。
external_dependencies(dict(key=list(str)))包含 Python 和/或二进制依赖的字典。
对于 Python 依赖,必须在此字典中定义
python键,并为其赋值一个待导入 Python 模块的列表。对于二进制依赖,必须在此字典中定义
bin键,并为其赋值一个二进制可执行文件名称的列表。如果主机上未安装相应的 Python 模块,或在主机的 PATH 环境变量中找不到相应的二进制可执行文件,该模块将不会被安装。
application(bool,默认值:False)该模块应被视为功能完整的应用(
True),还是仅为现有应用模块提供额外功能的技术模块(False)。assets(dict)定义所有静态文件在各种资源包中的加载方式。有关如何描述资源包的更多细节,请参阅 assets 页面。
installable(bool,默认值:True)用户是否应能通过 Web 界面安装该模块。
maintainer(str)负责维护该模块的人员或实体,默认假定作者即维护者。
{pre_init, post_init, uninstall}_hook(str)模块安装/卸载的钩子,其值应为字符串,表示在模块的
__init__.py中定义的函数名称。pre_init_hook仅接受一个游标作为参数,该函数在模块安装之前执行。post_init_hook接受游标和注册表作为参数,该函数在模块安装完成后立即执行。uninstall_hook接受游标和注册表作为参数,该函数在模块卸载之后执行。这些钩子只应在通过 API 进行该模块所需的设置/清理极其困难或不可能时使用。
active(bool)已弃用。由
auto_install取代。