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。減去指定時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章