前言

前面我们详细讲解了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. 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的更多相关文章

  1. laravel orm 中的一对多关系 hasMany

    个人对于laravel orm 中对于一对多关系的理解 文章表 article,文章自然可以评论,表 comment 记录文章的评论,文章和评论的关系就是一对多,一篇文章可以有多个评论. 在 comm ...

  2. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  3. Node.js中的不安全跳转如何防御详解

    Node.js中的不安全跳转如何防御详解 导语: 早年在浏览器大战期间,有远见的Chrome认为要运行现代Web应用,浏览器必须有一个性能非常强劲的Java引擎,于是Google自己开发了一个高性能的 ...

  4. 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解

    Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解   多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...

  5. Android中Intent传值与Bundle传值的区别详解

    Android中Intent传值与Bundle传值的区别详解 举个例子我现在要从A界面跳转到B界面或者C界面   这样的话 我就需要写2个Intent如果你还要涉及的传值的话 你的Intent就要写两 ...

  6. ORACLE中RECORD、VARRAY、TABLE的使用详解(转)

    原文地址:ORACLE中RECORD.VARRAY.TABLE的使用详解

  7. Java集合中List,Set以及Map等集合体系详解

    转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...

  8. 对python3中pathlib库的Path类的使用详解

    原文连接   https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...

  9. Oracle中的SQL分页查询原理和方法详解

    Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006

随机推荐

  1. klayout安装及使用教程

    klayout 版本:klayout-0.26.9 我的系统环境:Deepin20(可以视为Debian) 修改过的代码地址:https://github.com/stuartofmine/klayo ...

  2. SpringBoot实现通用的接口参数校验

    本文介绍基于Spring Boot和JDK8编写一个AOP,结合自定义注解实现通用的接口参数校验. 缘由 目前参数校验常用的方法是在实体类上添加注解,但对于不同的方法,所应用的校验规则也是不一样的,例 ...

  3. MySQL数据的高效检索

    数据库操作中,常常需要完成既定数据的检索.少量数据存放在表中,只需使用基本的SQL语句即可检索得到.但当数据量较大时,受MySQL数据库底层实现原理的限制,缺省的SQL语句,检索效率较低. 例如:当执 ...

  4. 6.7考试总结(NOIP模拟5)

    前言 昨天说好不考试来着,昨晚就晚睡颓了一会,今天遭报应了,也没好好考,考得挺烂的就不多说了. T1 string 解题思路 比赛上第一想法就是打一发sort,直接暴力,然后完美TLE40pts,这一 ...

  5. noip模拟6[辣鸡·模板·大佬·宝藏]

    这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走 ...

  6. JavaScript的核心语法

    1.JavaScript同其他程序设计语言一样,有着独特的语法结构,主要包含:变量.数据类型.运算符号.控制语句和注释等. 2.变量是存储数据的基本单位,JavaScript通常利用变量来参与j各种运 ...

  7. Go语言中底层数组和切片的关系以及数组扩容规则

    Go语言中底层数组和切片的关系以及数组扩容规则 demo package main import ( "fmt" ) func main() { // 声明一个底层数组,长度为10 ...

  8. CVPR2021 | 开放世界的目标检测

    ​ 本文将介绍一篇很有意思的论文,该方向比较新,故本文保留了较多论文中的设计思路,背景知识等相关内容. 前言: 人类具有识别环境中未知对象实例的本能.当相应的知识最终可用时,对这些未知实例的内在好奇心 ...

  9. AWS上创建EKS(K8S)集群

    1.注意事项及准备工作 EKS分为EKS Master和EKS Node两种角色;EKS Master为全托管,EKS Node为CloudFormation创建 EKS Node若在NAT网络里,一 ...

  10. Qt 串口通信之使用16进制发送数据的转换方式

    Qt 串口通信之使用16进制发送数据的转换方式 一 概述 有时候在做上位机串口通讯时,经常需要将字符串转成16进制的形式作为发送,借此分析记录一下. 二 需求分析 //假设需要转换的字符:如下 QSt ...