星輝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方法引用獲取欄位屬性
- 一些常用的模型屬性模型
- 如何使用odoo的compute方法,自動計算odoo欄位Odoo
- 模型追加欄位模型
- odoo 開發入門教程系列-模型之間的關係(Relations Between Models)Odoo模型
- Kotlin——中級篇(二): 屬性與欄位詳解Kotlin
- 始終使用屬性(Property),而不是欄位(Data Member)
- windows域控裡,屬性和欄位對映表Windows
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫
- C#學習筆記-欄位、屬性、索引器C#筆記索引
- 裝備屬性欄位設計和投放詳解
- odoo 開發入門教程系列-QWeb簡史OdooWeb
- odoo 開發入門教程系列-約束(Constraints)OdooAI
- odoo 開發入門教程系列-繼承(Inheritance)Odoo繼承
- jackson根據屬性名動態序列化物件欄位物件
- SAP事務碼MM02裡的欄位屬性控制
- 深入理解JavaScript類與物件:揭秘類欄位和靜態屬性的妙用,js靜態屬性和例項屬性JavaScript物件JS
- odoo 開發入門教程系列-模組互動Odoo
- 模型資料追加欄位模型
- CSS 常用文字屬性CSS
- css常用文字屬性CSS
- IL角度理解C#中欄位,屬性與方法的區別C#
- Odoo ORM研究1 - BaseModel中的類屬性的作用OdooORM
- [BUG反饋]模型管理 > 欄位管理看不見任何欄位。這表明顯有欄位、!模型
- Django 常用欄位和引數Django
- CAD屬性編輯操作——物件屬性教程物件
- lambda 表示式從集合中獲取某個欄位屬性的集合
- echarts常用屬性記錄Echarts
- CSS3常用屬性CSSS3