odoo(三):__manifest__.py清单文件
文件清单文件用于将 python 包声明为 Odoo 模块并指定模块元数据
它是一个名为__manifest__.py
并包含单个 Python 字典的文件,其中每个键指定模块元数据。
{
'name': "A Module",
'version': '1.0',
'depends': ['base'],
'author': "Author Name",
'summary': "Summary"
'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)
此模块的版本,应遵循语义版本控制规则,参考 https://semver.org/
description(str)
模块的扩展描述
author(str)
模块作者姓名
website(str)
模块作者的网站 URL
license(str,默认值LGPL-3)
模块的分发许可证。可能的值:
GPL-2
GPL-2 or any later version
GPL-3
GPL-3 or any later version
AGPL-3
LGPL-3
Other OSI approved licence
OEEL-1(Odoo 企业版许可证 v1.0)
OPL-1(Odoo 专有许可证 v1.0)
Other proprietary
category(str, 默认值: Uncategorized)
Odoo 中的分类类别,模块的粗略业务领域。
尽管建议使用现有类别,但该字段是自由格式的,并且会即时创建未知类别。可以使用分隔符 / 创建类别层次结构
例如:Foo/Bar 将创建一个类别Foo,一个类别Bar作为Foo的子类别,并将Bar设置为模块的类别。
depends(list(str))
本模块所依赖的模块
必须在此之前加载的 Odoo 模块,因为该模块使用了他们创建的功能,或者因为它改变了他们定义的资源。
安装一个模块时,它的所有依赖项都安装在它之前。同样,在加载模块之前加载依赖项。
base模块总是安装在任何 Odoo 实例中。但是您仍然需要将其指定为依赖项,以确保您的模块在更新时base得到更新。
data(list(str))
加载的处理文件,总是加载
必须始终随模块安装或更新的数据文件列表。来自模块根目录的路径列表
demo(list(str))
演示数据,仅在演示模式下安装或更新的数据文件列表
qweb(list(str))
模板
auto_install(bool或list(str),默认值False)
是否自动安装
如果True,如果安装了所有依赖项,则会自动安装此模块。
它通常用于“链接模块”,实现两个原本独立的模块之间的协同集成。
如果它是一个列表,它必须包含依赖项的子集。安装子集中的所有依赖项后,将自动安装此模块。其余的依赖项也将自动安装。如果列表为空,则无论其依赖关系如何,该模块将始终自动安装,并且这些也将被安装。
external_dependencies(dict(key=list(str)))
包含 python 和/或 二进制依赖项的字典。
对于 python 依赖python项,必须为此字典定义键,并且应为其分配要导入的 python 模块列表。
对于二进制依赖bin项,必须为此字典定义键,并应为其分配二进制可执行文件名称列表。
如果主机中未安装 python 模块或在主机的 PATH 环境变量中找不到二进制可执行文件,则不会安装该模块。
application (bool, 默认值: False)
该模块应该被视为一个成熟的应用程序(True)还是只是一个技术模块(False),它为现有的应用程序模块提供了一些额外的功能。
css(list(str))
指定要导入的具有自定义规则的 css 文件,这些文件应位于static/src/css模块内部。
images(list(str))
指定模块要使用的图像文件。
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 进行时,才应使用这些钩子。