模块清单¶
清单¶
清单文件用于将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
, required)模块的可读名称
version
(str
)此模块的版本应遵循 语义化版本 规则
description
(str
)模块的扩展描述,使用reStructuredText格式
author
(str
)模块作者的姓名
website
(str
)模块作者的网站 URL
license
(str
, defaults:LGPL-3
)模块的分发许可证。可能的值:
GPL-2
GPL-2 or any later version
GPL-3
GPL-3 or any later version
AGPL-3
LGPL-3
Other OSI approved licence
OEEL-1
(Odoo Enterprise Edition License v1.0)OPL-1
(Odoo Proprietary License v1.0)Other proprietary
category
(str
, default:Uncategorized
)Odoo中的分类类别,模块所属的大致业务领域。
虽然建议使用 现有类别,但该字段是自由格式的,未知类别会即时创建。可以使用分隔符
/
创建类别层次结构,例如Foo / Bar
将创建一个类别Foo
,一个作为Foo
子类别的类别Bar
,并将Bar
设置为模块的类别。depends
(list(str)
)必须在此模块之前加载的Odoo模块,因为此模块使用它们创建的功能或更改它们定义的资源。
当一个模块被安装时,它的所有依赖项都会在它之前被安装。同样,在加载模块之前会先加载依赖项。
注解
模块 base
在任何 Odoo 实例中都已安装。但是,您仍然需要将其指定为依赖项,以确保在更新 base
时更新您的模块。
data
(list(str)
)必须始终与模块一起安装或更新的数据文件列表。从模块根目录开始的路径列表
demo
(list(str)
)仅在 演示模式 下安装或更新的数据文件列表
auto_install
(bool
orlist(str)
, default: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
, default:False
)模块是否应被视为一个完整的应用程序(
True
)或仅仅是一个技术模块(False
),为现有应用程序模块提供一些额外的功能。assets
(dict
)定义了如何将所有静态文件加载到不同的资源包中。有关如何描述资源包的详细信息,请参阅 assets 页面。
installable
(bool
default:True
)用户是否应该能够从Web UI安装模块。
maintainer
(str
)负责维护此模块的个人或实体,默认情况下,假定作者是维护者。
{pre_init, post_init, uninstall}_hook
(str
)Hooks for module installation/uninstallation, their value should be a string representing the name of a function defined inside the module’s
__init__.py
.pre_init_hook
takes a cursor as its only argument, this function is executed prior to the module’s installation.post_init_hook
takes a cursor and a registry as its arguments, this function is executed right after the module’s installation.uninstall_hook
takes a cursor and a registry as its arguments, this function is executed after the module’s uninstallation.这些钩子应该仅在通过 API 进行此模块的设置/清理非常困难或不可能时使用。
active
(bool
)已弃用。已被
auto_install
取代。