快速创建模块2

前情回顾

前面我通过scaffold命令创建了一个模块,并且成功安装到系统中...

接下来,我们要让自己的模块在系统上有所展示,那么不得不写代码了。写之前当然要了解模块中目录和文件的用途。

controllers,这个目录及其中的文件是用来写控制器的,什么是控制器呢?等你到了学习odoo website的时候才会讲。

demo,这个目录及其中的文件是用来创建演示数据的,咱们用不到。

__init__.py,这个文件是python的一个特性,解释起来需要不少的篇幅,特别是如果给不了解python的同学解释就有点没意义了。所以,你要记住这个文件在模块的根目录中,从这个文件中的内容能够一级一级的找到起作用的python代码,不理解不要紧,本文最后会举个例子。

__manifest__.py,这个文件是这个模块的资源描述文件,里面有很多属性,我们专门用一个课程来讲解。

models,这个目录是用来存放python文件的,而python在Odoo系统中承担的责任是业务逻辑(服务端)。

security,这个目录通常只包含两个文件,一个是自动生成的ir.model.access.csv文件,该文件是用来定义模型的权限的,还有一个没有自动生成,一般我们命名为securitys.xml,该文件用来定义权限组和记录规则。

views,这个目录是用来存放视图文件的。

所以,一个基本的模块,MVC都包含了。

———————头疼的分隔线———————

关于python的__init__.py文件,我上面说了一级一级的找起作用的python文件(代码),你看该模块根目录的这个文件,它是import models,我们可以理解成找到models这个目录,而我们进入models目录,发现里面也有一个__init__.py文件,而这个文件里面写的是from . import models,这句话的意思是从当前目录(__init__.py所在的目录)找到models这个文件。

那么什么是起作用的python文件?也就是说不是如果没有from . import models这句话,那么你在models.py这个文件中不管写多少代码,系统都不理会。所以,假如我们想临时让一个python文件不起作用,是不必要删除这个python文件的,将__init__.py中的语句注释掉即可。

留下评论

你应该 登入 张贴评论