Odoo12 ORM API ☞ Domains
Domains
Domains是一個元組列表,每個元組是包含(field_name,operator,value)的三元組(列表或元組),其中:
field_name (str)
當前模型的欄位名稱,或使用點符號得到Many2one模型中的欄位。
operator (str)
用於將field_name與value進行比較的運算子。有效的運算子有:
=
等於
!=
不等於
>
大於
>=
大於等於
<
小於
<=
小於等於
=?
未設定或相等(如果value為None或False,則返回true,否則以 = 計算)
=like
將field_name與值模式匹配。模式中的下劃線_代表(匹配)任何單個字元;百分號%匹配任何零個或多個字元的字串。
like
將field_name與%value%pattern匹配。與=相似,但在匹配前用’%'包裝值
not like
與%value%模式不匹配
ilike
不區分大小寫將field_name與值模式匹配
not ilike
不區分大小寫比較field_name與%value%模式不匹配
=ilike
不區分大小寫將field_name與值模式匹配
in
等於任何值的值,值應該是專案列表
not in
不等於任何值
child_of
值記錄的子集
需考慮模型的語義(即遵循_parent_name命名的關係欄位)。
value
變數型別,必須與命名欄位相當(通過運算子)
可以使用字首形式的邏輯運算子組合域標準:
’&'
邏輯AND,預設操作將標準相互組合,Arity 2(使用接下來的2個標準或組合)。
’|'
邏輯OR,arity 2。
’!'
邏輯NOT,arity 1。
主要是否定標準的組合
個別標準通常具有否定形式(例如= - >!=, - > =),這比否定正確更簡單。
Example
要搜尋來自比利時或德國的ABC合作伙伴,其語言不是英語:
[('name','=','ABC'), ('language.code','!=','en_US'), '|',('country_id.code','=','be'), ('country_id.code','=','de')]
domian如下:
(name is 'ABC')
AND (language is NOT english)
AND (country is Belgium OR Germany)