odoo ORM中的filed的关系映射的使用详解1
前言
前面我们详细讲解了odoo ORM中fields中的常见属性的使用,根据不同的属性可以对字段进行不同的限制操作,比如readonly只读,store是否存储到数据库。今天我们继续研究ORM中的关系映射有哪些。
class odoo.fields. Integer(常用)
- Integer会映射成int类型数据。
- 无其它特别的属性用法。
class odoo.fields. Binary
- 封装存储二进制数据
- 特有属性
- class odoo.fields.
Binaryattachment default为True,不会存储到数据库中,如果为False则会在数据库中创建指定的字段。
- class odoo.fields.
class odoo.fields. Html
- xml中的表现是在页面中生成一个富文本编辑器。
- 特有属性(没做过具体研究)
- sanitize。默认值为True。
- sanitize_tags。默认值为True。
- sanitize_attributes。默认为True。
- sanitize_style。默认值为False。
- strip_style。默认值为False。
- strip_classes。默认值为False。
class odoo.fields. Image
- 封装图像,是Binary类型的扩展。
- 特有属性
- max_width。图像的最大宽度。
- max_height。图像的最大高度。
- verify_resolution。是否验证分辨率,使其不超过它最大的分辨率限制。
class odoo.fields. Monetary(常用)
float的扩展类型,经常使用在价格相关的字段上,配合外键
res_currency一起使用。特有属性
- currency_field。需要配置外键字段res_currency一起使用
# currency_field是一个Str类型的数据
fandx_price = fields.Monetary(string='fandx_price', currency_field='currency_id', required=True, readonly=True)
# Many2one for res.currency
currency_id = fields.Many2one('res.currency', 'Currency', required=True, readonly=True)
class odoo.fields. Selection(常用)
封装多选字段,一般最常用的在封装state状态字段的时候。
特有属性
- selection。用来定义可选的内容
- selection_add。用于继承之前定义好的selection进行扩展可选内容。
- ondelete。在数据删除的时候会触发,这里传的是一个字典类型数据,如果指定内容被删除,那么会重新进行数据的映射
# 所有状态为未审核的字段,如果0被删除了,那么这部分会自动变成未知状态。
fandx_state = fields.Selection(selection=[("0", "未审核"),("1", "已审核")], ondelete={"0": "未知状态"})
class odoo.fields. Text
- 和Char类型相似,但是可以存储更多的字符容量。
- 特有属性
- translate。是否翻译,开启翻译会自动翻译成当前配置的语言。
class odoo.fields. Date | DateTime(常用)
- Date和Datetime属性也是非常常用的映射字段,主要用来表示时间。
- Odoo中所有的时间处理用的也是python自带的datetime的方法,所以这里不去细讲解。
- 特有属性
- start_of。设置开始时间
- end_of。设置结束时间
- add。添加指定时间
- subtract。减去指定时间
odoo ORM中的filed的关系映射的使用详解1的更多相关文章
- laravel orm 中的一对多关系 hasMany
个人对于laravel orm 中对于一对多关系的理解 文章表 article,文章自然可以评论,表 comment 记录文章的评论,文章和评论的关系就是一对多,一篇文章可以有多个评论. 在 comm ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- Node.js中的不安全跳转如何防御详解
Node.js中的不安全跳转如何防御详解 导语: 早年在浏览器大战期间,有远见的Chrome认为要运行现代Web应用,浏览器必须有一个性能非常强劲的Java引擎,于是Google自己开发了一个高性能的 ...
- 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解 多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...
- Android中Intent传值与Bundle传值的区别详解
Android中Intent传值与Bundle传值的区别详解 举个例子我现在要从A界面跳转到B界面或者C界面 这样的话 我就需要写2个Intent如果你还要涉及的传值的话 你的Intent就要写两 ...
- ORACLE中RECORD、VARRAY、TABLE的使用详解(转)
原文地址:ORACLE中RECORD.VARRAY.TABLE的使用详解
- Java集合中List,Set以及Map等集合体系详解
转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...
- 对python3中pathlib库的Path类的使用详解
原文连接 https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...
- Oracle中的SQL分页查询原理和方法详解
Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006
随机推荐
- 『居善地』接口测试 — 13、Moco框架的使用
目录 1.Moco框架第一个练习 2.Get方法的Mock实现 3.Post方法的Mock实现 4.请求中加入Cookies 5.请求中加入Header 6.Moco模拟重定向 7.综合练习 8.总结 ...
- jdk,jre.jvm三者的关系
jdk>jre>jvm jdk=jre+java的开发工具(包括java.exe,javac.exe.javadoc.exe) jre=jvm+java核心类库
- spring + spring mvc + tomcat 面试题(史上最全)
文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...
- 使用Go module和GoLand初始化一个Go项目
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 Golang是一门优秀的语言,特别是在并发编程上,得益于它的协程和channel等,非常方便易用.它通过go m ...
- CMake 两种变量原理
目录 [TOC] 1.两种变量的定义参考 2.两种变量的作用域原理及使用 1.Normal Variables (1).包含 add_subdirectory().function().(本质是值拷贝 ...
- c#json将字符串反序列化成对象时不新建类的做法
在服务端代码文件中加上struct结构体就能解决 struct LocationInfo { public string LocationID { get; set; } public string ...
- 怎样用好PS中的钢笔工具(附练习钢笔工具网站)
想要在PS中得心应手的的描绘出自己想要的线条(也就是路径),就需要对[钢笔工具]有一个充分的理解. [钢笔工具]绘出来的线条全部都是贝赛尔曲线,所以你在学习[钢笔工具]之前,要补习一下贝赛尔曲线的常识 ...
- 基于Istio构建微服务安全加固平台的探索
简介 An open platform to connect, secure, control and observe services. Istio 是一个由谷歌.IBM 与Lyft共同开发的开源项 ...
- CRM系统对管理客户的帮助
我们可以把客户关系看做是一种长期的投资,在资源有限的基础上,把人力财力物力放到那些能够持续创造价值的客户身上,从而为企业带来源源不断的收益.通过进行客户关系管理,能够让企业与客户之间建立沟通的渠道,形 ...
- Mysql:报错message from server: "Too many connections"(连接太多)
报错信息 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source re ...