odoo ORM中的filed的关系映射的使用详解1
前言
前面我们详细讲解了odoo ORM中fields中的常见属性的使用,根据不同的属性可以对字段进行不同的限制操作,比如readonly只读,store是否存储到数据库。今天我们继续研究ORM中的关系映射有哪些。
class odoo.fields. Integer
(常用)
- Integer会映射成int类型数据。
- 无其它特别的属性用法。
class odoo.fields. Binary
- 封装存储二进制数据
- 特有属性
- class odoo.fields.
Binary
attachment 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相关推荐
- php hasmany,浅谈laravel orm 中的一对多关系 hasMany
个人对于laravel orm 中对于一对多关系的理解 文章表 article,文章自然可以评论,表 comment 记录文章的评论,文章和评论的关系就是一对多,一篇文章可以有多个评论. 在 comm ...
- mysql映射mapper_Mybatis中Mapper映射文件使用详解
紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明. Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd.我们先大体上看看 ...
- C++中数组和指针的关系(区别)详解
C++中数组和指针的关系(区别)详解 本文转自:http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面: 没有方括号和下标的数组名称实际 ...
- Python的Django框架中forms表单类的使用方法详解2
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- Node.js中的不安全跳转如何防御详解
为什么80%的码农都做不了架构师?>>> Node.js中的不安全跳转如何防御详解 导语: 早年在浏览器大战期间,有远见的Chrome认为要运行现代Web应用,浏览器必须有一个 ...
- java8 方法引用详解_Java8中如何通过方法引用获取属性名详解
前言 在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点. ...
- 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)
前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...
- python调用包中的方法_python 中不同包 类 方法 之间的调用详解
目录结构如下: 在hello.py中导入ORM.py这个文件的时候,采用 import ORMPackage.ORM 或者 import ORM u = User(id = 123, name='co ...
- mysql resulttype map_Mybatis中的resultType和resultMap查询操作实例详解
resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比 ...
最新文章
- body,td,th {
- pytorch nn.Conv2d
- 以Drools5.5为例说明“规则引擎在业务系统中应用”---起始篇
- jax-rs jax-ws_创建一个简单的JAX-RS MessageBodyWriter
- NumPy Beginner's Guide 2e 带注释源码 三、熟悉 NumPy 常用函数
- 红黑树插入和删除的各种情况分析
- 借助共享缓存redis实现分布式锁
- 删除和修改nbsp;预留nbsp;:BAPI_RESERVATI…
- 汉字转16进制java_java中将汉字转换成16进制
- G_O_R加速器仿真之计算原理
- 分布式会议系统中的服务器,多功能会议系统分配服务器质量过硬
- 图文详解如何从win8/8.1中文版(核心版)升级到win8/8.1专业版
- 晨晖c语言,晨晖C语言学习系统
- ssh遇到密钥更改问题
- flask爱家租房项目开发(一)
- 数组数据结构的使用与代码编写(一)
- 3ds max7渲染传奇三剑客VRay教程(PDF)
- Android KK平台的一个bug----在收到内容只有一个“=”的信息后,手机自动重启
- 深度学习基础----吴恩达课后编程练习(一)识别猫
- Java初学多种数据类型接收方法总结