转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826099.html

 

一:基本字段类型

Binary:二进制类型,用于保存图片、视频、文件、附件等,在视图层显示为一个文件上传按钮。【Odoo底层对该类型字段的容量作了限制,最多能容纳20M内容】

Char:字符型,size属性定义字符串长度。

Boolean:布尔型

Float:浮点型,如 rate = fields.float('Relative Change rate',digits=(12,6)), digits定义数字总长和小数部分的位数

Integer:整型

Date:短日期,年月日,在view层以日历选择框显示。

Datetime:时间戳。

Text:文本型,多用于多行文本框,可以用widget属性为它添加样式。

Html:与text类似,用于多行文本编辑,不过自带编辑器样式,并且会把内容以html解析。

Selection:下拉列表,枚举类型。

 

 二:关联字段类型

one2one: 一对一关系。

格式为:fields.one2one(关联对象Name, 字段显示名, ... )。在V5.0以后的版本中不建议使用,而是用many2one替代

many2one: 多对一关系,格式为:fields.many2one(关联对象Name, 字段显示名, ... )。可选参数有:ondelete,可选值为"cascade"和"null",缺省值为"null",表示one端的record被删除后,many端的record是否级联删除。

参数列表:
comodel_name(string) -- 目标模型名称,除非是关联字段否则该参数必选
domain -- 可选,用于在客户端筛选数据的domain表达式
context -- 可选,用于在客户端处理时使用
ondelete -- 当所引用的数据被删除时采取的操作,取值:'set null', 'restrict', 'cascade'
auto_join -- 在搜索该字段时是否自动生成JOIN条件,默认False
delegate -- 设置为True时可以通过当前model访问目标model的字段,与_inherits功能相同

one2many: 一对多关系,格式为:fields.one2many(关联对象Name, 关联字段, 字段显示名, ... ),例:'address'=fields.one2many('res.partner.address', 'partner_id', 'Contacts')。

参数列表:
comodel_name -- 目标模型名称,
inverse_name -- 在comodel_name 中对应的Many2one字段
domain -- 可选,用于在客户端筛选数据的domain表达式
context -- 可选,用于在客户端处理时使用
auto_join -- 在搜索该字段时是否自动生成JOIN条件,默认False
limit(integer) -- 可选,在读取时限制数量

many2many: 多对多关系。

comodel_name -- 目标模型名称,除非是关联字段否则该参数必选
relation -- 关联的model在数据库存储的表名,默认采用comodel_name获取数据
column1 -- 与relation表记录相关联的列名
column2 --与relation表记录相关联的列名
domain -- 用于在客户端筛选数据的domain表达式
context -- 用于在客户端处理时使用
limit(integer) --在读取时限制数量

例如:'category_id'=fields.many2many('res.partner.category','res_partner_category_rel','partner_id','category_id','Categories')

表示以多对多关系关联到对象res.partner.category,关联表为'res_partner_category_rel',关联字段为 'partner_id'和'category_id'。当定义上述字段时,OpenERP会自动创建关联表为 'res_partner_category_rel',它含有关联字段'partner_id'和'category_id'。

三:引用类型

1:related字段

字段=fields.类型(related="某个字段.类字段",store=true/false)

related字段可以简记为“带出字段”,由当前模型的某个关联类型字段的某个字段带出值。

2:reference字段

reference是比related更高级的引用字段,可以指定该字段引用那些模型范围内的模型的哪些字段的值,范围更广。

四:Odoo保留字段

  • name(Char) -- _rec_name的默认值,在需要用来展示的时候使用
  • active(Boolean) -- 设置记录的全局可见性,当值为False时通过search和list是获取不到的
  • sequence(Integer) -- 可修改的排序,可以在列表视图里通过拖拽进行排序
  • state(Selection) -- 对象的生命周期阶段,通过fileds的states属性使用
  • parent_id(Many2one) -- 用来对树形结构的记录排序,并激活domain表达式的child_of运算符
  • parent_left,parent_right -- 与 _parent_store结合使用,提供更好的树形结构数据读取

五:自动化属性

在模块安装后,模块中的类会自动添加一些属性,这些属性是odoo自动化添加与修改的,可以在odoo调试模式下,点击一个model进行查看。如:

自动化属性主要有:

对应的数据库表中也会自动生成这些字段:

如果不想为model自动添加这些属性,可以在类中通过:

来关闭自动化属性。

六:Compute字段

compute字段不是一种字段类型,而是指某个字段的值是计算出来的。

一个字段的值,可以通过一个函数来动态计算出来。定义格式如下:

字段名=fields.类型(compute="函数名",store=True/false) #store定义了该动态改变的字段值是否保存到数据库表中

@api.depends(依赖的字段值)#depend的字段值一旦发生变化,就会触发该函数,从而更新compute字段值。
def 函数(self):
self.字段=计算字段值

Odoo字段类型详解的更多相关文章

  1. (转)MySQL字段类型详解

    MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...

  2. 别在细节上栽跟头------------mysql 字段类型详解

    也许你平时不在意,在设计数据库的时候,数字就设成int(10) 字符串就设成varchar(20)或者text 普通情况下是没有问题的,但是若不理解字段类型和长度的含义,总有一天你会在这里栽跟头, 这 ...

  3. 转: sql server2008 字段类型详解

    bit 整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能 ...

  4. sqlserver字段类型详解(转)

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  5. sqlserver字段类型详解

    抄了一篇不错的数据库类型,来自:http://www.cnblogs.com/andy_tigger/archive/2011/08/21/2147745.html bit 整型 bit数据类型是整型 ...

  6. mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  7. SQL 字段类型详解

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off.    注意:很省空间的一种数据 ...

  8. SqlServer 字段类型详解

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  9. oracle 字段类型详解

    CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度 ...

随机推荐

  1. webpack中的hash、chunkhash、contenthash区别

    hash一般是结合CDN缓存来使用,通过webpack构建之后,生成对应文件名自动带上对应的MD5值.如果文件内容改变的话,那么对应文件哈希值也会改变,对应的HTML引用的URL地址也会改变,触发CD ...

  2. ##ant 打包apk

    ant 打包apk 1. 参考: Android Ant 批量多渠道打包实例 单个渠道类似操作,只不过不用修改build.xml文件 2. 修改ant debug的包签名,使用和release版本相同 ...

  3. GDAL在VS下配置测试

    刚才在VS2013里面配置了一下GDAL,然后就测试了配置成功与否.熟料,竟然发现在微软的Visual Studio 2013版本中,调用MessageBox()这个函数的时候报错了. 错误信息如下 ...

  4. 在centos系统的/etc/hosts添加了 当前主机的 ‘ NAT分配的IP controller’,RabbitMQ添加用户报错。

    在centos系统的/etc/hosts添加了 当前主机的 ' NAT分配的IP controller',RabbitMQ添加用户报错. rabbitMq添加用户 报错信息如下 [root@contr ...

  5. stacking method house price in kaggle top10%

    整合几部分代码的汇总 隐藏代码片段 导入python数据和可视化包 导入统计相关的工具 导入回归相关的算法 导入数据预处理相关的方法 导入模型调参相关的包 读取数据 特征工程 缺失值 类别特征处理-l ...

  6. Python 的文件保存路径

    1.保存在当前代码同级的目录下: 2.保存在代码文件夹外面一层的新文件夹(data文件夹与代码文件夹同级)里: 3.保存在下一级的子文件夹里

  7. spring boot 从开发到部署(二)—重启服务

    上篇中,我们开发并部署上线了一个 spring boot 项目.现在需要编写服务重启脚本,保证服务器重启后能够自动的运行我们的项目. /home/web/sprint-web/restart-happ ...

  8. Spring Boot 嵌入式 Tomcat 文件上传、url 映射虚拟路径

    1.Java web 应用开发完成后如果是导入外置的 Tomcat 的 webapps 目录的话,那么上传的文件可以直接的放在应用的 web 目录下去就好了,浏览器可以很方便的进行访问. 2.Spri ...

  9. django开发_七牛云CNAME解析

    CNAME 简介 CNAME 即指别名记录,也被称为规范名字.这种记录允你将多个名字映射到同一台计算机. 当需要将域名指向另一个域名,再由另一个域名提供 ip地址,就需要添加 CNAME 记录. 为什 ...

  10. SQL分类之DCL:管理用户、授权

    DCL:管理用户.授权 SQL分类: DDL:操作数据库和表 DML:增删改表中的数据 DQL:查询表中的数据 DCL:管理用户.授权 DBA:数据库管理员 DCL:管理用户.授权 1.管理用户 1. ...