模块清单¶
显现¶
清单文件用于将 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, defaults:LGPL-3)模块的分发许可证。可能的值:
category(str, default:Uncategorized)Odoo 内的分类类别,模块的粗略业务领域。
尽管建议使用 existing categories,但该字段是自由格式的,并且未知类别是动态创建的。可以使用分隔符
/e.g.Foo / Barwill create a categoryFoo, a categoryBaras child category ofFoo, and will setBar作为模块的类别来创建类别层次结构。depends(list(str))必须在此模块之前加载 Odoo 模块,因为该模块使用他们创建的功能,或者因为它改变了他们定义的资源。
当安装一个模块时,它的所有依赖项都会在它之前安装。同样,依赖项是在加载模块之前加载的。
注解
模块 base 始终安装在任何 Odoo 实例中。但您仍然需要将其指定为依赖项,以确保在更新 base 时更新您的模块。
data(list(str))必须始终与模块一起安装或更新的数据文件列表。模块根目录的路径列表
demo(list(str))仅在*演示模式*下安装或更新的数据文件列表
auto_install(boolorlist(str), default:False)如果是“
True”,则在安装了该模块的所有依赖项后,该模块将自动安装。它通常用于“链接模块”,实现两个独立模块之间的协同集成。
例如``sale_crm`` depends on both
saleandcrmand is set toauto_install. When bothsaleandcrmare installed, it automatically adds CRM campaigns tracking to sale orders without eithersaleor ``crm``互相了解。如果它是一个列表,则它必须包含依赖项的子集。一旦安装了子集中的所有依赖项,该模块就会自动安装。其余的依赖项也将自动安装。如果列表为空,则无论其依赖项如何,该模块都将始终自动安装,并且这些模块也将被安装。
external_dependencies(dict(key=list(str)))包含 python 和/或二进制依赖项的字典。
对于 python 依赖项,必须为此字典定义“
python”键,并为其分配要导入的 python 模块列表。对于二进制依赖项,必须为此字典定义“
bin”键,并为其分配二进制可执行文件名称列表。如果主机中未安装 python 模块或主机的 PATH 环境变量中未找到二进制可执行文件,则不会安装该模块。
application(bool, default:False)该模块是否应被视为成熟的应用程序(
True) or is just a technical module (False),为现有应用程序模块提供一些额外的功能。assets(dict)定义如何将所有静态文件加载到各种资源包中。有关如何描述捆绑包的更多详细信息,请参阅 assets 页面。
installable(booldefault:True)用户是否应该能够从 Web UI 安装模块。
maintainer(str)负责维护该模块的个人或实体,默认情况下假设作者是维护者。
{pre_init, post_init, uninstall}_hook(str)用于模块安装/卸载的挂钩,它们的值应该是一个字符串,表示模块“
__init__.py”内定义的函数名称。pre_init_hook将 env 作为其唯一参数,该函数在模块安装之前执行。post_init_hook将 env 作为其唯一参数,该函数在模块安装后立即执行。uninstall_hook将 env 作为唯一参数,该函数在模块卸载后执行。仅当该模块所需的设置/清理通过 API 极其困难或不可能时,才应使用这些挂钩。
sequence(int)您的模块将显示在应用程序模块中的列表中的哪个位置。数字越低意味着您的模块在列表中的位置越靠前。默认情况下,它设置为“
100”。active(bool)已弃用。替换为“
auto_install”。