创建模块的基本框架

来自Odoo V
跳转至: 导航搜索
按照第一章的指导,我们用odoo开发的时候,需要有odoo sever安装在~/odoo-dev/odoo/目录。为了保持整洁,我们在其旁边建新的目录来存放自定义模块  ~/odoo-dev/custom-addons。

Odoo包括一个scaffold命令来自动创建一个新的模块目录,其基本结构已经就位。 你可以用下面的命令来了解更多。

 $ ~/odoo-dev/odoo/odoo-bin scaffold --help 

在处理下一个模块时,您可能想要记住这一点,但是我们现在不会使用它,因为我们宁愿手动创建模块的所有结构。

  Odoo addon模块是一个包含 __manifest__.py 描述文件的目录
  备注
  在以前的版本中,此描述符文件命名为 __openerp__.py。 此名称仍然受支持,但已被弃用  

它还需要是 Python 可导入的,因此它还必须有一个 __init__.py 文件。

  模块的目录名称是其技术名称。 我们将使用todo_app。 文件名称必须是有效的Python标识符:它应以字母开头,并且只能包含字母,数字和下划线字符。

以下命令将创建模块目录并在其中创建一个空的__init__.py文件,〜/ odoo-dev / customaddons / todo_app / __ init__.py 如果想通过命令行,下面的命令行你将会用到:

  $ mkdir ~/odoo-dev/custom-addons/todo_app 
  $ touch  ~/odoo-dev/custom-addons/todo_app/__init__.py 

接下来,我们需要创建清单文件。 它只包含一个Python字典,里面大约有十几个可能的属性; 其中,只有 name 属性是必填的。描述属性(对于较长的描述)和作者属性是建议填写的。 我们现在应该在__init__.py文件旁边添加一个__manifest__.py文件,其中包含以下内容

 {
     'name': 'To-Do Application',     
     'description': 'Manage your personal To-Do     tasks.',     
     'author': 'Daniel Reis',     
     'depends': ['base'],     
     'application': True, 
 }

depends 属性可以包含所依赖的其他模块的列表。 当安装此模块时,Odoo 将自动安装它们。 这不是一个强制性的属性,但建议总是包含它。 如果不需要特定的依赖,我们应该依赖于核心 base 模块。

你应该注意确保所有依赖关系在这里明确设置; 如果其所依赖的模块在其之后加载,模块可能无法安装在干净的数据库(由于缺少依赖关系)或有加载错误。

对于我们的应用程序,我们不需要任何特定的依赖关系,因此我们仅依赖于 base 模块 为了简明起见,我们选择使用非常少的描述键,但是在真实的情况下,我们建议您还使用附加键,因为它们与 Odoo 应用商店相关:

       summary 显示为模块的副标题
       version 默认为 1.0。 它应该遵循版本语义规则(详见http://semver.org/)
       license 许可证标识符,默认为LGPL-3
       website 网站是一个用于查找有关模块的更多信息的URL。 这可以帮助人们找到更多的文档或问题跟踪,以提出 Bug 和建议。
       category是模块的功能类别,默认为Uncategorized。 现有类别的列表可以在【应用程序】下拉列表中的安全组表单(设置|用户|组)中找到其它可用的描述符:
       installable 默认为 True,但可以设置为 False 以禁用模块
       auto_install 如果设置为True,此模块将被自动安装,前提是其所有依赖项都已安装。 它用于必装模块

从Odoo 8.0 开始,我们可以在模块的顶层目录中使用 README.rst 或 README.md 文件替代描述键。

上一节:修改和扩展模块
下一节:关于许可证