iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
IT管理

Odoo模組開發實務分享系列 第 21

Day 21 Odoo 的domain是什麼?

這裡的domain並不是指網域的domain, 而是針對某張資料表的固定搜尋條件(當然是可以寫程式去動態變更doamin)

基本範例是 domain = [('active', '=', True)], 是指搜尋這張資料表的active欄位等於True的資料

操作符大致有下列, 如圖

https://ithelp.ithome.com.tw/upload/images/20211005/201407781UmRuiGkCO.png

如果要搜尋的欄位是many2one or many2many or one2many 則可以使用 . 的方式, 如下例:
domain = [('partner_id.active', '=', True)]

相較一般的網頁程式, 就不需要另外寫LEFT JOIN 去撈資料, 這樣是不是比較省事呢?

另外, 在action裡的domain寫法必須注意操作符的寫法, 例如:

['|', '|', ('employee_id.user_id.id', '=', uid), '&', ('manager_id', '=', uid), ('state', '=', '3'), '&', ('recipient_ids.user_id.id', '=', uid), ('state', 'in', ['3', '4'])]

例子中的 & 要轉換成 & 當然大於小於的符號也要轉換, 不然很容易錯到懷疑人生

domain的寫法百百種, 明天在介紹如何在onchange裡寫出動態domain


上一篇
Day 20 api介紹
下一篇
Day 22 Odoo 動態domain
系列文
Odoo模組開發實務分享30

尚未有邦友留言

立即登入留言