博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Odoo字段类型详解
阅读量:4679 次
发布时间:2019-06-09

本文共 3012 字,大约阅读时间需要 10 分钟。

转载请注明原文地址:

 

一:基本字段类型

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:下拉列表,枚举类型。

示例:state = fields.Selection([('draft', 'Draft'),('confirm', 'Confirmed'),('cancel', 'Cancelled')], string='Status')

 

 二:关联字段类型

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条件,默认Falsedelegate -- 设置为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条件,默认Falselimit(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.字段=计算字段值

 

分类:
+加关注
0
0
上一篇:
下一篇:
posted @
2019-05-07 16:06 阅读(
227) 评论(
0)
发表评论

昵称:

评论内容:
引用
粗体
链接
缩进
代码
图片

不改了 退出

[Ctrl+Enter快捷键提交]

相关博文:
·
·
·
·
·
最新新闻
·
·
·
·
·
»

转载于:https://www.cnblogs.com/plusUltra/p/11127708.html

你可能感兴趣的文章
vue组件库(五):icon管理
查看>>
Apache Hadoop 和Hadoop生态圈
查看>>
Ctrl+Enter 选中文本提交
查看>>
android WIFI
查看>>
常用的匹配正则表达式和实例
查看>>
小组成员及其git链接
查看>>
SQL case when else
查看>>
JAVA学习之路(环境配置,)
查看>>
Task.WaitAll代替WaitHandle.WaitAll
查看>>
MVc Identity登陆锁定
查看>>
cdn连接失败是什么意思_关于CDN的原理、术语和应用场景那些事
查看>>
ultraedit26 运行的是试用模式_免费试用U盘数据恢复工具 – 轻松找回U盘丢失的各种数据!...
查看>>
怎么从转移特性曲线上看dibl_白话IVD中的流体——泵的流量特性与管路阻力特性...
查看>>
奈奎斯特与香农定理_通俗理解奈奎斯特带宽
查看>>
ercharts一个页面能放几个_谷歌优化排名网站内页,一般放置几个关键词?
查看>>
redirect路由配置 vue_Vue 动态生成路由结构
查看>>
maven仲裁机制_Maven 基础知识依赖机制
查看>>
canvas绘制四分之一圆_用canvas画太极图(一步步详解附带源代码)
查看>>
计算上个月的第一天和最后一天_20年的最后一场旅行,21年的第一场旅行
查看>>
抄表 软件_水表远程抄表方案 M-BUS NB-IOT LoRa有什么区别呢
查看>>