星輝科技Odoo模型開發教程2-模型創建第一講

創建模型

模型是 Odoo 框架的核心,它們描述應用的數據結構,是應用服務和數據庫存儲之間的橋樑。可圍繞模型實現業務邏輯來爲應用添加功能,用戶界面也建立在模型之上。下面我們將學習模型的
通用屬性,用於影響行爲,以及幾種模型類型:普通(regular)、臨時(transient)和抽象(abstract)類型。

模型屬性

模型類可以使用控制其部分行爲的額外屬性,以下是最常用的屬性:
⚫ _name 是我們創建的 Odoo 模型的內部標識符,在創建新模型時爲必填。
⚫ _description 是對用戶友好的模塊記錄標題,在用戶界面中查看模型時顯示。可選但推薦添
加。
⚫ _order 設置瀏覽模型記錄時或列表視圖的默認排序。其值爲 SQL 語句中 order by 使用的字符串,所以可以傳入符合 SQL 語法的任意值,它有智能模式並支持可翻譯及 manyto-one 字段名。
我們的圖書模型中已使用了_name 和_description 屬性,可以添加一個_order 屬性來默認以圖書名排序,然後按出版日期倒序排(新出版在前)。
class Book(models.Model):
_name = 'library.book'
_description = 'Book'
_order = 'name, date_published desc'
在高級用例中還會用到如下屬性:
⚫ _rec_name 在從關聯字段(如 many-to-one 關聯)中引用時作爲記錄描述。默認使用模型
中常用的 name 字段,但可以指定任意其它字段。
⚫ _table 是模型對應的數據表名。默認表名由 ORM 通過替換模塊名中的點爲下劃線來自動
定義,但是可通過該屬性指定表名。
⚫ _log_access=False 用於設置不自動創建審計追蹤字段: create_uid, create_date,
write_uid 和 write_date。
⚫ _auto=False 用於設置不自動創建模型對應的數據表。如有需要,可通過重載 init()方法來
創建數據庫對象:數據表或視圖。
還有用於繼承模塊的_inherit 和_inherits 屬性,在本文後續會深入學習。

更多教程:https://www.erpdaxue.cn/odoo/odoo-teach/odoo12-teach/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章