星輝Odoo模型開發教程4-常用欄位屬性
欄位還有一些其它屬性供我們定義其行為。以下是常用的屬性,通常都作為關鍵字引數:
⚫ string 是欄位的預設標籤,在使用者介面中使用。除 Selection 和關聯欄位外,它都是第一個位置引數,所以大多數情況下它用作關鍵字引數。如未傳入,將由欄位名自動生成。
⚫ default 設定欄位預設值。可以是具體值(如 active 欄位中的 default=True),或是可呼叫引用,有名函式或匿名函式均可。
⚫ help 提供 UI 中滑鼠懸停欄位向使用者顯示的提示文字。
⚫ readonly=True 會使使用者介面中的欄位預設不可編輯。在 API 層面並沒有強制,模型方法中的程式碼仍然可以向其寫入。僅針對使用者介面設定
⚫ required=True 使得使用者介面中欄位預設必填。這通過在資料庫層面為列新增 NOT NULL
約束來實現。
⚫ index=True 為欄位新增資料庫索引,讓搜尋更快速,但同時也會部分降低寫操作速度。
⚫ copy=False 讓欄位在使用 ORM copy()方法複製欄位時忽略該欄位。除 to-many 關聯字
段外,其它欄位值預設會被複制。
⚫ groups 可限制欄位僅對一些組可訪問並可見。值為逗號分隔的安全組 XML ID 列表,如
groups=’ base.group_user,base.group_system’。
⚫ states 傳入依賴 state 欄位值的 UI 屬性的字典對映值。可用屬性有 readonly, required
和 invisible,例如 states={‘done’ :[(‘readonly’ ,True)]}。
“ 小貼士: 注意 states 欄位等價於檢視中的 attrs 屬性。同時注意檢視也支援 states 屬性,但用途不同,傳入逗號分隔的狀態列表來控制元素什麼時候可見。 ”
以下為欄位屬性關鍵字引數的使用示例:
name = fields.Char(
'Title',
default=None,
index=True,
help='Book cover title',
readonly=False,
required=True,
translate=False,
)
如前所述, default 屬性可帶有固定值,或引用函式來自動計算預設值。對於簡單運算,可使用lambda 函式來避免過重的有名函式或方法的建立。以下是一個計算當前日期和時間預設值的常用示例:
last_borrow_date = fields.Datetime(
'Last Borrowed On',
default=lambda self: fields.Datetime.now(),
)
預設值也可以是一個函式引用,或待定義函式名字串:
last_borrow_date = fields.Datetime(
'Last Borrowed On',
default='_default_last_borrow_date',
)
def _default_last_borrow_date(self):
return fields.Datetime.now()
當模組資料結構在不同版本中變更時以下兩個屬性非常有用:
⚫ deprecated=True 在欄位被使用時記錄一條 warning 日誌
⚫ oldname=’ field’是在新版本中重新命名欄位時使用,可在升級模組時將老欄位中的資料自
動拷貝到新欄位中
相關文章
- odoo ORM研究3 - odoo fields常用的欄位屬性OdooORM
- odoo欄位屬性列舉Odoo
- odoo學習5-模型欄位知識Odoo模型
- C#快速入門教程(5)——欄位與屬性C#
- C#屬性與欄位C#
- Laravel 5.7 模型常用屬性Laravel模型
- 共有的表單欄位屬性
- Scala的類、屬性、物件欄位物件
- [提問交流]建立模型,新增屬性,欄位型別如何設定2位小數的欄位型別模型型別
- lambda方法引用獲取欄位屬性
- c#之事件_方法_屬性_欄位C#事件
- 利用 alter 語句修改欄位屬性
- 一些常用的模型屬性模型
- Web開發教程4-掌握MavenWebMaven
- 如何使用odoo的compute方法,自動計算odoo欄位Odoo
- ms sql 獲取表欄位的屬性SQL
- 裝備屬性欄位設計和投放詳解
- Scala類的屬性以及物件私有欄位物件
- iOS開發中一些常用的屬性iOS
- 模型追加欄位模型
- odoo 開發入門教程系列-模型之間的關係(Relations Between Models)Odoo模型
- C#通過反射獲取物件屬性,列印所有欄位屬性的值C#反射物件
- odoo 開發入門教程系列-繼承(Inheritance)Odoo繼承
- odoo 開發入門教程系列-模組互動Odoo
- odoo 開發入門教程系列-QWeb簡史OdooWeb
- windows域控裡,屬性和欄位對映表Windows
- 始終使用屬性(Property),而不是欄位(Data Member)
- C#中的屬性和欄位的區別C#
- C#學習筆記-欄位、屬性、索引器C#筆記索引
- Windows常用屬性開啟指令 (轉)Windows
- Kotlin——中級篇(二): 屬性與欄位詳解Kotlin
- PG 資料庫查詢欄位屬性的指令碼資料庫指令碼
- c# saf 框架欄位屬性多層巢狀示例C#框架巢狀
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫
- UISearchBar常用屬性UI
- css常用屬性CSS
- WinForm常用屬性ORM
- .net常用屬性