声明: 本教程基于 Ruter 老师的 [Odoo基础教程系列] ,Ruter老师教程的链接地址为:Odoo基础教程系列 。 至于为什么已经有了Ruter老师的教程,还要自己再搬移一份呢?是基于一下几点考虑的: 1.虽然 Ruter 老师的教程可以说已经非常详细了,但因为字数限制难免还会有一些步骤需要读者自己去做,这其中读者自己操作时可能会出错; 2.Ruter 老师的教程是基于Odoo11进行指导的,但现在Odoo13即将发布了,11可能有点落伍了; 3.自己学到的知识才是自己的,将学习中的过程和问题记录下来,才是属于自己的知识。 话不多说,下面让我们进行正题吧。 本章内容总结 1.项目前置准备 2.创建模块,模块的简单配置 3.model模型及模块安装 4.创建菜单视图 5.添加应用到应用列表 6.创建任务列表视图。 项目初始准备 如果你的odoo环境还没有配合好的话,请参考我的另一篇文章:win10中odoo12环境配置 在配好环境之后,如果要启动项目,需要添加如下配置: 1.将odoo-bin文件放在odoo源码下,如果没有odoo-bin文件,可以将odoo源码下的一个odoo.py文件复制并更名为odoo-bin; 2.在 odoo源码/setup/odoo.conf中添加odoo配置,内容如下: 3.pycharm下项目启动配置,在绿色倒三角形旁边 4.在odoo源码的目录下创建一个myaddons文件夹,用来存放自己编写的odoo应用/模块,这里我的odoo源码是从gitee上下载的odoo12源码; 为了让odoo可以检索到我们自定义myaddons下的模块,我们要将myaddons的路径加入到模块检索路径下 在 odoo.conf 文件下添加如下配置: 复制代码 addons_path=E:\YifChanSoft\Odoo\OdooSave\odoo_gitee\odoo\addons,E:\YifChanSoft\Odoo\OdooSave\odoo_gitee\myaddons 复制代码 前一个是系统模块的路径,后面一个是我们自定义模块文件夹的路径 Todo应用 创建模块 在配置好环境之后,win10下执行以下命令可以创建一个应用 python odoo-bin scaffold todo myaddons 以上命令代表,在myaddons目录下创建一个名为todo的模块。 目录如下: 创建好todo模块后,我们在 __mainfest__.py 编写模块的清单文件: __mainfest__.py 复制代码 { 'name': "todo", # 应用/模块名 'summary': """todo task""", # 对应用/模块的摘要 'description': """Todo task-list the things you need to do.""", # 对应用/模块的描述 'author': "YifChan", # 作者 'application': True, # 将模块变成一个应用,可以在应用中搜索到 'sequence': 1, # 将应用/模块排在所有应用/模块的第一位 } 复制代码 model模型及模块安装 在我们的todo应用中,todo任务模型要有 “待办任务”和“已完成”两个字段, 因此,我们在models/models.py中加入如下代码: models/models.py 复制代码 from odoo import models, fields, api class TodoTask(models.Model): _name = 'todo.task' _description = '待办事项' name = fields.Char('描述', required=True) is_done = fields.Boolean('已完成?') 复制代码 在models/__inti__.py中添加如下代码: from . import models 此时我们的项目已经可以在应用中被找到了 打开浏览器进入 http://127.0.0.1:8069 ,如果你是第一次进入的话,可能需要进行如下配置 其中各个的含义如下: master password:数据库中超级管理员的密码 database name:将为你现在odoo源码创建的pg数据库 email:odoo管理员,可以不是邮箱,名字任取 password:odoo管理员密码 填写进入后,我们点击页面左上角的田字形符号,选择参数设置,点击右边的 激活开发者模式,截图如下: 不要纠结我左上角的todo,这是因为我已经装好并配置好了,原来只有todo下面的两列。 激活开发者模式之后,我们继续点击田字形符号里的应用,然后点击导航条上的刷新本地模块列表。 这样我们就可以在右上角的搜索框中搜索todo了,如果是模块的话,记得叉掉应用后再查找模块名,这里因为我们已经配置了todo为应用,所以可以直接查找,查找结果如下: 点击安装,然后会刷新,但是刷新后你会发现还是回到了应用页面,并且再次搜索todo后,会显示已安装。 我们还不能进入todo应用页面,这是因为我们还没有给todo添加应用入口,下面我们来进行添加。 创建菜单 在views文件夹下,我们创建一个 views/todo_menus.xml 文件,并添加如下内容 复制代码 待办事项 todo.task form tree,form current 复制代码 将todo_menus.xml文件添加入data列表中: __mainfest__.py 复制代码 'data': [ 'views/views.xml', 'views/templates.xml', 'views/todo_menus.xml', ], 复制代码 搜索模块,点击模块右上角的三点,进行升级模块。 注意事项 在odoo中,如果你修改了xml文件,你所做的修改要升级应用后才能生效; 如果你修改了py文件,要重启项目并且升级应用后才能使修改生效;但是我个人习惯,只要修改了,就重启项目并且升级应用。 当你添加一个xml视图文件或者权限文件后,要将文件放入应用下的__mainfest__.py文件的data列表中。 当你新建了一个python相关的文件夹,要在项目下的__init__.py文件中引入文件夹; 当你在应用下的某个文件夹中新建了一个要自动初始化的py文件,要在该文件夹中的__init__.py文件中引入你所添加的py文件。 以上几点很重要,故在此统一列出,在后面可能不会再赘述,请读者牢记。 添加应用到应用列表 到了上一步其实我们还是不能观察到变化,这是因为我们还没有添加应用到应用列表中,即左上角的田字形列表中,先展示一下效果图: 为了实现这个,我们要确保一下三点: 1,有model模型, 2,在model模型的基础上,menu.xml中有具体子菜单项及动作 3,在csv权限中有查看model的权限并将csv文件添加到data列表中 前面我们已经实现了model模型,和菜单xml,接下来我们实现第三点, 我们给security/ir.model.access.csv文件中添加如下内容: 复制代码 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_todo_task,todo.task,model_todo_task,,1,1,1,1 复制代码 这里是给todo.task模型赋予增删改查的权限。 做完这个我们还要将这个文件添加到data列表中,其实只要解开该文件的注释即可,如下: 复制代码 'data': [ 'security/ir.model.access.csv', ], 复制代码 重启项目,升级模块。 至此,我们可以点击左上角的下拉菜单并可以点击todo应用来进入应用,我们可以看到如下内容: 你可以点击创建一个任务看看。 创建任务列表视图 通过上一步我们已经可以看到任务列表了,这个是系统为我们自动配置的视图。 但是我们只能看到任务的name字段,而无法直接看见任务是否完成,此时,我们可以配置自己的视图来按照自己的需求来显示任务列表。 创建 views/todo_views.xml,并在其中加入如下内容 复制代码 todo.task.view_tree todo.task tree 复制代码 将todo_view.xml加入data列表中。 升级应用后我们可以看到如下内容: 本节内容基本到此结束了。https://www.cnblogs.com/yifchan/p/odoo-1-3.html