1. 程式人生 > 其它 >odoo ORM中的filed的關係對映的使用詳解1

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. 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 原創內容,未經允許禁止轉發,違者必究其責任!