模块清单

清单

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

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

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 中的分类类别,模块的大致业务领域。

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

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

installable ( bool 默认值: 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 替代。