zoukankan      html  css  js  c++  java
  • odoo ORM中的filed的关系映射的使用详解1

    前言

    前面我们详细讲解了odoo ORM中fields中的常见属性的使用,根据不同的属性可以对字段进行不同的限制操作,比如readonly只读,store是否存储到数据库。今天我们继续研究ORM中的关系映射有哪些。

    class odoo.fields. Boolean(常用)

    • 创建bool类型的数据库字段映射

    class odoo.fields. Char(常用)

    • 创建字符串类型的数据字段,非常常用。
    • 特有属性
      • size。设置最大存储字符大小。
      • trim。是否自动裁剪数据,默认为True。
      • translate。是否翻译数据,默认为True。

    class odoo.fields. Float(常用)

    • 创建float数据字段映射到数据库,也是非常常用的。
    • 特有属性。
      • digits。进行精度的设置,digits=(16, 3),设置为16位整数,3位小数的精度。

    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。减去指定时间


    本文 FANDX 原创内容,未经允许禁止转发,违者必究其责任!
  • 相关阅读:
    NFC学习一个记录
    谈话《百度搜索引擎的网页质量白皮书》
    EBS OAF 发展 URL商标、加密和编码
    绘制一个简单的实现接口盘
    [AngularFire2] Pagination
    [TypeScript] The Basics of Generics in TypeScript
    [TypeScript] Using Assertion to Convert Types in TypeScript
    [TypeScript] Sharing Class Behavior with Inheritance in TypeScript
    [TypeScript] Creating a Class in TypeScript
    [Angular2 Router] Preload lzay loading modules
  • 原文地址:https://www.cnblogs.com/fandx/p/15080529.html
Copyright © 2011-2022 走看看