模块清单

清单

清单文件用于将一个 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',
    ],
}

可用的清单字段包括:

名称 (str, 必填)

模块的可读名称

版本``(``str

该模块的版本应遵循 语义化版本控制 规则

描述 (str)

模块的扩展描述,使用 reStructuredText 格式

作者 (str)

模块作者名称

网站 (str)

模块作者的网站网址

许可``(``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)

  • 其他专有

类别 (str,默认:未分类)

模块在 Odoo 中的分类类别,表示该模块的大致业务领域。

虽然使用 现有类别 是推荐的做法,但该字段是自由格式的,未知的类别会按需自动创建。可以使用分隔符 / 创建类别层次结构,例如 Foo / Bar 将创建一个类别 Foo,一个作为 Foo 子类别的 Bar 类别,并将 Bar 设置为模块的类别。

依赖项``(``列表(字符串)

在加载此模块之前必须加载的 Odoo 模块,要么是因为此模块使用了它们创建的功能,要么是因为它修改了它们定义的资源。

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

注解

模块 base 在任何 Odoo 实例中都会被安装。但您仍然需要将其指定为依赖项,以确保当 base 更新时,您的模块也能得到更新。

数据 (列表(字符串))

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

演示``(``列表(字符串)

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

auto_install``(``boollist(str),默认值:False

如果为 True,则在所有依赖项都已安装的情况下,该模块将自动安装。

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

例如 sale_crm 依赖于 salecrm,并设置为 auto_install。当 salecrm 都被安装时,它会自动将 CRM 活动跟踪添加到销售订单中,而 salecrm 本身并不知道彼此的存在。

如果这是一个列表,它必须包含依赖项的一个子集。一旦该子集中的所有依赖项都被安装,此模块将自动被安装。其余的依赖项也将被自动安装。如果列表为空,则无论其依赖项如何,此模块都将被自动安装,这些依赖项也将被安装。

外部依赖项 (字典(键=列表(字符串)))

一个包含 Python 和/或二进制依赖项的字典。

对于 Python 依赖项,此字典必须定义 python 键,并应将要导入的 Python 模块列表分配给它。

对于二进制依赖项,此字典必须定义 bin 键,并应将二进制可执行文件名的列表分配给它。

如果主机上未安装 Python 模块,或者在主机的 PATH 环境变量中找不到二进制可执行文件,则该模块将不会被安装。

应用 (布尔值, 默认: False)

该模块是否应被视为一个完整的应用程序(True),还是仅作为一个技术模块(False),用于为现有应用程序模块提供额外功能。

资源 (字典)

一个关于如何在各种资源包中加载所有静态文件的定义。有关如何描述资源包的更多详细信息,请参阅 assets 页面。

可安装``(``布尔 默认值:True

用户是否应该能够从 Web UI 安装该模块。

维护者 (str)

该模块的维护人员或实体,默认情况下认为作者是维护者。

{pre_init, post_init, uninstall}_hook``(``str

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

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

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

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

这些钩子应在以下情况下使用:当为该模块设置/清理所需的操作通过接口极其困难或无法实现时。

激活 (bool)

已弃用。请改用 auto_install