学习内容转载于:
Odoo里模型和视图那些事儿_CBGCampus的博客-优快云博客
【学习内容】
一、关于模型(Models)
1、Model是存储数据记录的最主要手段,它是持久化地对数据记录(record)进行存储,直至对其进行删除。几乎所有的自定义模块都会继承自models.Model,可以存储数据库中所有开发所需的数据与字段。
学习笔记:
- 数据记录就是record,在数据库的table里的一行行数据,一行数据就是一条record(记录)
- 持久化:新建一个word文档,在word文档里敲字,上下滑动鼠标滚轮,可以查看到已经写下的内容,此时的word文档使用的是内存,存在RAM上,是电存储,里面是高电位低电位,运行速度非常快。如果保存文档后再就把word文档关闭掉,再次打开word文档,还可以看到已经写下的内容,此时的word文档存在硬盘上,是磁存储。点击保存文档的过程,就是将电存储转化为磁存储的过程,也就是持久化。
- 自定义模块:自定义模块就是加载在odoo上的一个个模块。如果odoo是一个手机,那么自定义模块就是一个个的APP。
- 继承:定义是子类继承父类的属性和方法
【学习内容】
1.models.Model
这里的models和Model的含义是不一样的。前者指的是Odoo的模型对象,也就是我们开发Odoo时所需要用到的.py文件;后者指的是对于列表、字典、自定义类这些可变变量,如果将其作为类变量,则是传引用——即所有对象的类变量公用一个内存地址。这是Python语言的语法所规定的,其定义代码可由图1-1-1示例:
学习笔记:
- models,就是指开发Odoo时用到的.py文件
- Model,,我没有看懂Model的定义,但是从网址中可得知,Model = 数据库中的表。Model似乎就是指数据库中的表,这里暂时这么理解,以后学习深入,再修正笔记。
【学习内容】
2.name属性和description属性
name属性是模型中的必填属性,Odoo里Class的唯一标识,并且在整个模型文件的全局不能够重复。
description是描述属性,只在查看模型界面的时候作为展示使用,没有实际用户。它可选不填,但好的编码习惯我们应该书写尽量详尽的描述。
学习笔记:
- name是模型中的必填属性,name就是模型的名字,具有唯一性。
- description是模型中一个属性,用来描述模型,可选填。
【学习内容】
3.function函数(修饰器)
@api.multi:对记录集进行操作的方法需要添加此修饰器,此时self就是要操作的记录集。所以方法内应该对self进行遍历