1. 程式人生 > >Odoo12 ORM API ☞ Domains

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)