模块清单

显现

清单文件用于将 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)

模块的分发许可证。可能的值:

  • 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, default: Uncategorized)

Odoo 内的分类类别,模块的粗略业务领域。

尽管建议使用 existing categories,但该字段是自由格式的,并且未知类别是动态创建的。可以使用分隔符 / e.g. Foo / Bar will create a category Foo, a category Bar as child category of Foo, and will set Bar 作为模块的类别来创建类别层次结构。

depends (list(str))

必须在此模块之前加载 Odoo 模块,因为该模块使用他们创建的功能,或者因为它改变了他们定义的资源。

当安装一个模块时,它的所有依赖项都会在它之前安装。同样,依赖项是在加载模块之前加载的。

注解

模块 base 始终安装在任何 Odoo 实例中。但您仍然需要将其指定为依赖项,以确保在更新 base 时更新您的模块。

data (list(str))

必须始终与模块一起安装或更新的数据文件列表。模块根目录的路径列表

demo (list(str))

仅在*演示模式*下安装或更新的数据文件列表

auto_install (bool or list(str), default: False)

如果是“True”,则在安装了该模块的所有依赖项后,该模块将自动安装。

它通常用于“链接模块”,实现两个独立模块之间的协同集成。

例如``sale_crm`` depends on both sale and crm and is set to auto_install. When both sale and crm are installed, it automatically adds CRM campaigns tracking to sale orders without either sale or ``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 (bool default: 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”。