模块清单

清单

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

可用的清单字段包括:

namestr ,必填)

模块的可读名称

versionstr

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

descriptionstr

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

authorstr

模块作者的名称

websitestr

模块作者的网站 URL

licensestr ,默认值: 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)

  • 其他专有

categorystr ,默认值: 未分类

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

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

dependslist(str)

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

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

注解

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

datalist(str)

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

demolist(str)

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

auto_installboollist(str) ,默认值: False

如果为 True ,当所有依赖项都已安装时,该模块将自动安装。

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

例如, sale_crm 依赖于 salecrm ,并设置为 auto_install 。当 salecrm 都安装时,它会自动在销售订单中添加 CRM 活动跟踪功能,而无需 salecrm 彼此知晓。

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

external_dependenciesdict(key=list(str))

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

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

对于二进制依赖项,必须为此字典定义 bin 键,并为其分配二进制可执行文件名称列表。

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

applicationbool ,默认值: False

该模块是否应被视为功能齐全的应用程序( True ),或只是一个为现有应用程序模块提供额外功能的技术模块( False )。

assetsdict

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

installablebool 默认值: True

用户是否能够通过 Web UI 安装该模块。

maintainerstr

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

{pre_init, post_init, uninstall}_hookstr

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

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

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

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

只有在通过 API 实现该模块所需的设置/清理非常困难或不可能时,才应使用这些钩子。

activebool

已弃用。由 auto_install 替代。