1 使用one2many, 另一張表必須要有一個many2one的字段, 反向關聯只是為了方便取值
2 many2many會新增一個表
3 傳統繼承支持多重繼承, 用列表表示: inhert = ['mail.thread', 'resource.mixin']
4 進入odoo shell (用ipython解釋器)
python odoo-bin shell -c odoo.conf --shell-interface ipython -d odoo
-c 指定配置文件
--shell-interface 指定python解釋器
-d 指定數據庫
5 委托繼承
- 可以讀寫子模型的字段
- 只能繼承字段, 不能繼承方法
6 base是基礎模塊, 不用寫在depends里
7 domain
知識點1
- Python里寫, 右葉只能是值
- XML里寫, 右葉可以是其它字段/值
知識點2
如果一個字段同時設置Python和XML的domain, 那么XML的domain會覆蓋Python的domain
知識點3
XML不能用category_id.name !!!!不能使用【點號】
8 one2many 本表是沒有many的數據的, 但是可以通過ORM查詢到
9 計算字段注意區別
- multi 多條記錄
- one 單條記錄
10 recordsets支持+號這種語法
11 active = False tree視圖不顯示, odoo機制,
context = "{'active_test': False}" 可以禁用這種機制
12 新建admin uid為2 # 以前系統自帶的admin賬戶uid為1
13 計算字段的默認值獲取方式, 可以重寫default_get方法
14 onchange除了返回提示框, 還可以返回domain或raise userError
15 onchange和depends在鼠標失去焦點時, oncahnge先觸發
16 onchange model multi裝飾器的方法里, 可以訪問self._origin獲取原始數據
17 onchange里的self始終是odoo.models.NewId對象, 所以賦值的操作是在前端發生的
18 約束:sql約束在python約束之后
19 權限可以在前端的開發者模式設置
20 編寫CSV文件時, pycharm可以右鍵Edit as Table --> CSV --> ok
21 前(開發者模式)后端同時設置權限時, 大權限會覆蓋小權限
22 規則的邏輯
1 groups 應用該規則的組
2 domain_force 過濾出執行規則約束的記錄
3 各種規則
23 odoo12開始減少workflow的使用, 推薦使用workflow-ish的方式來處理工作流過程
24 向導
知識點1: 瞬態模型, 不會存在數據庫, 臨時的, 一段時間后會刪掉
知識點2: wizard沒有必要指定權限, 默認所有用戶可以訪問
知識點3: wizard記錄中的字段可以通過many2one指向wizard對象或普通model對象, 反之不成立
25 報表, odoo12有變化,
- docs ==> self 從context發過來的變量
- user 當前打印報表的人
- html可以打印多個, 通過直接寫id
26 RPC是一種協議, 供我們訪問服務器上的內容
XML_RPC調用時, USER和PASS是user表中的數據, 不是數據庫的用戶名和密碼