Odoo 创建模块
这里我先引用一下几篇文章,这里完整的实现了一个 odoo 的模块创建 demo
https://segmentfault.com/a/11…
https://segmentfault.com/a/11…
https://segmentfault.com/a/11…
https://segmentfault.com/a/11…
https://segmentfault.com/a/11…
https://segmentfault.com/a/11…
首先创一个保存自己模块的目录 myaddons
添加到插件路径中
addons_path = addons,myaddons
运行命令行参数
python odoo-bin scaffold tudo myaddons
确保激活了 venv
模块的组成
在 Python 中,每一个包(package)都包含一个 __init__.py 文件,而一个 Odoo 的模块,同时也是一个 Python 包,所以我们可以看到,生成的项目文件里已经包含了 __init__.py 这个文件,如果打开这个文件,你会看到里面引入了 controllers 和 models 这两个包,稍候我们会讲到这两个,这里先放一放。那么对于这个 __init__.py 文件,我们没什么特殊需求,是可以不用去理会的,就让它静静地躺在那里完成它的使命就好了。
文件 __manifest__.py 用于声明一个 Odoo 模块以及指定它的元数据(metadata),文件里只包含了一个单独的 Python 字典,里面默认只列出了 9 项最基本的配置项,包含了模块(或应用)名,模块的简介和详细介绍,作者和网站,模块的所属分类、版本,还有就是这个模块依赖于其他的哪些 Odoo 模块,需要加载哪些数据文件以及演示数据。除了这里列出的配置项外,还有一些高级配置项,我们这里暂时不需要理会,后面用到之后将会进行详细的说明。
接下来我们先讲一下 demo 和 security 这两个目录。前者是用于存放演示数据的,在 __manifest__.py 中就可以看到有引入该目录下的 demo.xml 文件,在使用演示模式时,初始化一些演示数据可以帮我们节省不少的时间;而后者通过名字就知道它的作用是跟安全相关的,目录下只有一个 ir.model.access.csv 文件,里面用于定义不同的角色组对应于不同模型的相关权限,包括读(read),写(write),创建(create)和删除(unlink)权限,拥有相关权限则为 1,反之为 0。我们刚提到了角色组,但是没有发现相关定义的位置,我们只要默认角色组的定义和模型权限定义在同一目录下就可以了,角色组的定义同样也是使用的 .xml 文件,在后面我们会有专门的一篇文章对角色组和权限进行讲解说明。
下面要讲的是 Odoo 开发中的核心部分 MVC(同时也是大部分 Web 应用开发所采用的经典模式),MVC 分别代表的是 Model(模型)、View(视图)和 Controller(控制器)。有关 MVC 模式具体的概念和相关的知识,这里就不作详细讲解了,希望不了解的同学可以去找找相关的内容学习一下。这里简单说一下它们各自的用途,在 Model 中,我们定义一切和数据相关的东西,例如对应到数据库表字段的模型字段、各种外键关系以及操作数据的逻辑方法等。View 则是负责数据展示的,我们通过编写视图控制需要展示出来的数据以及以什么样的形式展示数据等,并且可以在视图上进行交互。Controller 则是在 Model 和 View 之间,负责响应用户操作,从 Model 中获取数据进行处理并返回到 View 中。
安装模块
打开开发者模式 更新本地模块列表
更新完后就可以找到我们创建的 odoogoedu 模块进行安装
注意
模块的目录名称使用小写__manifest__.py 里的 name 补充__manifest__.py 另外 2 个有用的参数 ’application’: True,’sequence’: 1,