odoo13 自定义模块开发简介 windows10环境(一)

本教程假定已经在windows10下搭成odoo13可运行环境,若需搭建开发环境请参考文章
https://blog.csdn.net/zhujisoft/article/details/104461367

一、模块目录结构

1、利用命令行创建自定义模块

命令行格式   odoo-bin scaffold

以下命令行,示意在addons目录下创建自定义模块openacademy

python odoo-bin scaffold openacademy addons

2、目录结构

odoo13 自定义模块开发简介 windows10环境(一)_第1张图片

如上图所示,addons/openacademy目录下有五个子目录分别是controllers,demo,models,security,views。

  • models, views, controllers 分别对应MVC模式
  • security为访问安全控制
  • demo为模块自带的演示数据。

在openacademy目录下的文件_manifest_.py,则描述了模块的简要信息和包含的相关文件。

odoo13 自定义模块开发简介 windows10环境(一)_第2张图片

二、定义数据对象models

1、教程中涉及的几个对象

本模块模拟管理一个开放学院的讲座和具体场次,其中涉及三个主要对象openacademy,course,session。它们在models/models.py中详细定义。

odoo13 自定义模块开发简介 windows10环境(一)_第3张图片

2、对象属性的定义

     _name = 'openacademy.openacademy'    定义本对象的内部命名

     _description = 'openacademy   openacademy'   描述信息

    name = fields.Char()     定义对象的属性,fields有一些常用属性分别是

string (unicode, 默认: 字段的名称) 在图形界面中显示为字段的标签名 (对用户可见).

required (bool, default: False)  此字段是否必须有值,默认为否。

help (unicode, default: '') 帮助信息,在图形界面中作为小提示显示给用户.

index (bool, default: False)是否为索引字段,要求 Odoo 为此列创建一个索引,默认为否.

带字段属性的对象属性定义示例为

name = fields.Char(string="Title", required=True)    显示标签为Title,内容必填

duration = fields.Float(digits=(6, 2), help="Duration in days")   日程,浮点数字类型,共6位,2位小数,帮助信息为日程持续天数。

3、对象间属性的关联关系

对象间的字段支持多对一、一对多和多对多,分别为Many2one、One2many和Many2many。

例如,某个讲座需要负责人,多个讲座可由一人负责,这个人在本例中是odoo中的用户res.users,那么在course对象中定义一个多对一的属性responsible_id = fields.Many2one。

同样一个讲座course可以有多个场次session,那么需要一个一对多的属性关联session_ids = fields.One2many。

具体定义如下图

odoo13 自定义模块开发简介 windows10环境(一)_第4张图片

三、定义菜单、视图

1、菜单定义

菜单定义为模块安装后在odoo菜单中显示的名称和样式,在xml文件中以定义,用parent= menuitem-id表示树形结构,点击菜单项后的动作用action=fuction定义。   本例中为veiws/openacademy.xml文件,具体实现如下所示。

openacademy菜单

odoo13 自定义模块开发简介 windows10环境(一)_第5张图片

点击Courses菜单后的course_list_action动作定义

odoo13 自定义模块开发简介 windows10环境(一)_第6张图片

2、form表单定义

odoo13 自定义模块开发简介 windows10环境(一)_第7张图片

3、对象列表

odoo13 自定义模块开发简介 windows10环境(一)_第8张图片

4、对象查询

odoo13 自定义模块开发简介 windows10环境(一)_第9张图片

 

四、安装运行自定义模块

启动时用--addons-path指定自定义模块所在路径

python odoo-bin -r odoo -w odoo --addons-path=addons

登录odoo系统后,进入应用菜单,并且叉掉应用,搜索openacademy模块,如下图

然后点击安装,成功后自定义模块就会显示在odoo菜单中

odoo13 自定义模块开发简介 windows10环境(一)_第10张图片

需注意的问题:

odoo13自定义模块默认情况下安装后不会自动显示,原因是ir.model.access.csv文件中没有授权,安装前需将文件内容改为

odoo13 自定义模块开发简介 windows10环境(一)_第11张图片

 

参考文档

https://www.odoo.com/documentation/13.0/howtos/backend.html#build-an-odoo-module

你可能感兴趣的:(odoo)