模块清单文件

清单文件

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

  • GPL-2 或任何更高版本

  • GPL-3

  • GPL-3 或任何更高版本

  • AGPL-3

  • LGPL-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 模块,这可能是因为本模块使用了它们创建的功能,或者是因为本模块修改了它们定义的资源。

安装模块时,会先安装其所有依赖项。同样,依赖项会在模块加载之前先行加载。

注解

模块 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)

定义所有静态文件如何在各类资源包中加载。有关如何描述资源包的更多详情,请参阅 资源包 页面。

installable (bool,默认值:True)

用户是否能够从 Web 界面安装该模块。

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 取代。