odoo(三):__manifest__.py清单文件
文件清单文件用于将 python 包声明为 Odoo 模块并指定模块元数据
它是一个名为__manifest__.py
并包含单个 Python 字典的文件,其中每个键指定模块元数据。
{ 'name': "A Module", 'version': '1.0', 'depends': ['base'], 'author': "Author Name", 'summary': "Summary" '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) 此模块的版本,应遵循语义版本控制规则,参考 https://semver.org/ description(str) 模块的扩展描述 author(str) 模块作者姓名 website(str) 模块作者的网站 URL license(str,默认值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 企业版许可证 v1.0) OPL-1(Odoo 专有许可证 v1.0) Other proprietary category(str, 默认值: Uncategorized) Odoo 中的分类类别,模块的粗略业务领域。 尽管建议使用现有类别,但该字段是自由格式的,并且会即时创建未知类别。可以使用分隔符 / 创建类别层次结构 例如:Foo/Bar 将创建一个类别Foo,一个类别Bar作为Foo的子类别,并将Bar设置为模块的类别。 depends(list(str)) 本模块所依赖的模块 必须在此之前加载的 Odoo 模块,因为该模块使用了他们创建的功能,或者因为它改变了他们定义的资源。 安装一个模块时,它的所有依赖项都安装在它之前。同样,在加载模块之前加载依赖项。 base模块总是安装在任何 Odoo 实例中。但是您仍然需要将其指定为依赖项,以确保您的模块在更新时base得到更新。 data(list(str)) 加载的处理文件,总是加载 必须始终随模块安装或更新的数据文件列表。来自模块根目录的路径列表 demo(list(str)) 演示数据,仅在演示模式下安装或更新的数据文件列表 qweb(list(str)) 模板 auto_install(bool或list(str),默认值False) 是否自动安装 如果True,如果安装了所有依赖项,则会自动安装此模块。 它通常用于“链接模块”,实现两个原本独立的模块之间的协同集成。 如果它是一个列表,它必须包含依赖项的子集。安装子集中的所有依赖项后,将自动安装此模块。其余的依赖项也将自动安装。如果列表为空,则无论其依赖关系如何,该模块将始终自动安装,并且这些也将被安装。 external_dependencies(dict(key=list(str))) 包含 python 和/或 二进制依赖项的字典。 对于 python 依赖python项,必须为此字典定义键,并且应为其分配要导入的 python 模块列表。 对于二进制依赖bin项,必须为此字典定义键,并应为其分配二进制可执行文件名称列表。 如果主机中未安装 python 模块或在主机的 PATH 环境变量中找不到二进制可执行文件,则不会安装该模块。 application (bool, 默认值: False) 该模块应该被视为一个成熟的应用程序(True)还是只是一个技术模块(False),它为现有的应用程序模块提供了一些额外的功能。 css(list(str)) 指定要导入的具有自定义规则的 css 文件,这些文件应位于static/src/css模块内部。 images(list(str)) 指定模块要使用的图像文件。 installable(bool, 默认True) 用户是否应该能够从 Web UI 安装模块。 maintainer(str) 负责本模块维护的个人或实体,默认假定作者为维护者。 {pre_init, post_init, uninstall}_hook(str) 用于模块安装/卸载的钩子,它们的值应该是一个字符串,表示在模块的__init__.py中定义的函数名。 pre_init_hook将游标作为其唯一参数,此函数在模块安装之前执行。 post_init_hook将游标和注册表作为其参数,此函数在模块安装后立即执行。 uninstall_hook将游标和注册表作为其参数,该函数在模块卸载后执行。 仅当此模块所需的设置/清理非常困难或无法通过 api 进行时,才应使用这些钩子。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?