模块清单¶
清单¶
清单文件用于将 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
)该模块的版本,应遵循 语义化版本控制 规则
description
(str
)模块的扩展描述,使用 reStructuredText 格式
author
(str
)模块作者的名称
website
(str
)模块作者的网站 URL
license
(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)其他专有
category
(str
,默认值:未分类
)Odoo 中的分类类别,模块的大致业务领域。
尽管推荐使用 现有类别,但该字段是自由格式的,未知类别会动态创建。可以使用分隔符
/
创建类别层次结构,例如Foo / Bar
将创建一个类别Foo
,并将Bar
作为Foo
的子类别,同时将Bar
设置为模块的类别。depends
(list(str)
)必须在此模块之前加载的 Odoo 模块,因为此模块使用它们创建的功能或修改它们定义的资源。
当安装一个模块时,其所有依赖项都会在它之前安装。同样,依赖项会在模块加载之前加载。
注解
模块 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 UI 安装该模块。
maintainer
(str
)负责维护该模块的人员或实体,默认情况下假定作者即为维护者。
{pre_init, post_init, uninstall}_hook
(str
)模块安装/卸载的钩子,其值应为模块
__init__.py
中定义的函数名称的字符串表示形式。pre_init_hook
接受一个游标作为其唯一参数,该函数在模块安装之前执行。post_init_hook
接受一个游标和注册表作为其参数,该函数在模块安装后立即执行。uninstall_hook
接受一个游标和注册表作为其参数,该函数在模块卸载后执行。只有在通过 API 实现该模块所需的设置/清理非常困难或不可能时,才应使用这些钩子。
active
(bool
)已弃用。由
auto_install
替代。