iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
IT管理

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

Day 26 隱藏小知識

一般來說, 如果要在Odoo原生資料表增加欄位, 只要在py裡寫好就好, 像是這樣

https://ithelp.ithome.com.tw/upload/images/20211011/20140778keBjpR7DZZ.png

上圖是Many2one欄位, 基本上不會有事, 多數情況下也不會察覺問題在哪, 但...
如果你改為One2many或Many2Many欄位, 那就準備錯到懷疑人生了!!

因為Odoo會告訴你, hr.employee.public 沒有這個欄位

這時候你會有個疑問, 我明明是繼承hr.employee欄位, 跟hr.employee.public有什麼關係?

其實在Odoo13中, 當系統對hr.employee進行SELECT行為的時候, 都會先跑一段程式碼讀取hr.employee.public
而hr.employee.public在資料庫中是一張檢視表, 所以One2many或Many2Many在檢視表是行不通的

不用再嘗試了! Odoo13 之後的版本就是這樣, 請習慣


上一篇
Day 25 進入開發者模式
下一篇
Day 27 PostgreSQL 慢查詢提速 50+ 倍?
系列文
Odoo模組開發實務分享30

尚未有邦友留言

立即登入留言