模块清单

清单

清单文件用于将一个 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 模块,可能因为本模块使用了它们创建的功能,也可能因为它修改了它们定义的资源。

安装模块时,其所有依赖会先于它安装。同样,依赖也会先于模块加载。

Note

模块 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 界面安装该模块。

maintainer (str)

负责维护该模块的人员或实体,默认假定作者即维护者。

{pre_init, post_init, uninstall}_hook (str)

模块安装/卸载的钩子,其值应为字符串,表示在模块的 __init__.py 中定义的函数名称。

pre_init_hook 仅接受一个游标作为参数,该函数在模块安装之前执行。

post_init_hook 接受游标和注册表作为参数,该函数在模块安装完成后立即执行。

uninstall_hook 接受游标和注册表作为参数,该函数在模块卸载之后执行。

这些钩子只应在通过 API 进行该模块所需的设置/清理极其困难或不可能时使用。

active (bool)

已弃用。由 auto_install 取代。