字段类型
基础类型:
关系类型:
复杂类型:
详解
基础类型
char:
字符型,常用来存储长度小的文本
text:
文本型,没有长度限制。
boolean:
布尔型(True, False)
integer:
整数,不用多讲
float:
浮点型,如 ‘rate’ : fields.float(‘Relative Change rate’,digits=(12,6)), digits定义整数部分和小数部分的位数。
date:
日期型
datetime:
日期时间型
binary:
二进制型
Html:
与text类似,用于多行文本编辑,不过自带编辑器样式,并且会把内容以html解析。
Selection:
下拉列表,枚举类型。
复杂类型
one2one:
一对一关系,格式为:fields.one2one(关联对象Name, 字段显示名, … )。在V5.0以后的版本中不建议使用,而是用many2one替代
many2one:
多对一关系,格式为:fields.many2one(关联对象Name, 字段显示名, … )。可选参数有:ondelete,可选值为”cascade”和”null”,缺省值为”null”,表示one端的record被删除后,many端的record是否级联删除
one2many:
一对多关系,格式为:fields.one2many(关联对象Name, 关联字段, 字段显示名, … )
many2many:
多对多关系
字段属性
1 store=True
,计算字段要加
2 readonly=True
,设置字段只读
3 index=True
,增加数据库索引,提高搜索查找速度
4 required=True
,设置字段必填
5 size=64
,char类型字段设置字符大小?
6 default=False
,默认值
7 oldname=" "
,原字段名,用于替换字段名
8 related=''
, 关系字段
9 compute = ‘方法名’
,计算方法
10 inverse=‘ ’
,逆计算,可以和cmpute一同使用
11 help = ’ ’
,提示信息
12 ondelete = ’ ’
13 compute_sudo = True
14 domain = [ ]
15 digits=(10,2)
,添加在浮点型后面,控制小数位数(长度为10,数据库:保留两位)
16 translate=True
常用字段属性
String
default
readonly=True
required=True
index=True
copy=False
groups
related
compute
字段名 = fields.类型(compute="函数名", store=True / false) # store定义了该动态改变的字段值是否保存到数据库表中
@api.depends(依赖的字段值) # depend的字段值一旦发生变化,就会触发该函数,从而更新compute字段值。
def 函数(self):
self.字段 = 计算字段值