odoo shell 提供了乙個簡便的操作 odoo的互動介面, 從 odoo 9.0 開始就是標準功能, 無需安裝第三方應用。
odoo shell是 通過在 cli/command.py#commands{} 註冊 shell command 來實現的。
首先,odoo支援的 command 都是基於 command 基類,而 command 基類 則通過 在 它的 元類 初始化的時候, 往 commands{} 註冊支援的 command.
而 shell command.
而從 odoo 10 開始, shell 支援 多種 終端,通過引數shell-inte***ce 傳遞給odoo shell,支援以下終端型別
ipython
ptpython
bpython
python,如果不指定,則使用python
執行 odoo shell
執行 命令 python odoo-bin shell -c ..\t.conf --shell-inte***ce ipython
以 ipython 互動介面 執行 odoo shell. 啟動之後
出現 ipython 終端提示符
odoo shell啟動之後,只提供了 以下幾個變數
變數型別
envodoo.api.environment 物件
odoo
odoo 模組
openerp
odoo 模組
self
res.users(1,) 記錄
registry 是 odoo例項維護的資訊中心,可以通過 env.registry 獲取
通過 env.registry.models 可以 獲取當前 odoo例項 的模型列表, 它返回的結果是,modelclass 和 model 字典鍵值對,例如
檢視下 常用的 模型,例如 product.product
product.product 是 modelclass ; 而 odoo.api.product.product 則是 model
也可以通過 env['product.product'] 獲取 model
而這個 model 本身就是 odoo.api.product.product
再開看看 odoo.api.product.product 的基類
從登錄檔 獲取 odoo.api.product.product 對應的 model class, 發現 product.product 是在所有 定義/擴充套件過 product.product 模型的 模型基礎上 再組裝出來的。
odoo shell 操作 odoo 記錄
查詢產品
遍歷檢視產品的名稱
修改產品的屬性
例如修改 id = 1 產品的名稱
只要能取得模型,模型的一切方法都能呼叫, 標準的方法
方法必要引數
選參search
domain
search_count
domain
search_read
domain
browse
copy
copy_data
create
default_get
name_get
read
read_group
unlink
write
update
vals 字典 提示
odoo 的模型其實是 轉包過一次的,並不是 product.product,而是 odoo.api.product.product 而且 model 是 通過 model class 來進行例項化出來的。
嚴格意義上來講,在寫odoo 模型model 時,其實是在 寫 model class 的父類, 最終這些 父類會 彙總 派生出 model class,進而例項化為 model,而recordset 也是 model class 衍生出來的
在Sqlite中通過Replace來實現插入和更新
你可能在批量處理乙個事務的時候,想要批量插入一系列的資料,但是這些資料當新增完一次之後,重新新增的時候,你不想要重新新增,只是想將原有的資料進行更新,例如 我想要通過excel將一系列的圖書匯入到資料庫中,而這些圖書在你下一次編輯之後,重新匯入,只是對原有的資料進行修改。以上是乙個業務的場景。在ms...
在Sqlite中通過Replace來實現插入和更新
你可能在批量處理乙個事務的時候,想要批量插入一系列的資料,但是這些資料當新增完一次之後,重新新增的時候,你不想要重新新增,只是想將原有的資料進行更新,例如 我想要通過excel將一系列的圖書匯入到資料庫中,而這些圖書在你下一次編輯之後,重新匯入,只是對原有的資料進行修改。以上是乙個業務的場景。在ms...
jquery通過mouseover來模擬click
今天偶然遇到乙個問題,想通過乙個mouseover操作來模擬click的效果。其實這件事情對於jquery來說並不是乙個難的處理。只是有段時間沒有玩jquery,一些方法快忘掉了 簡單記錄一下吧,方便自己以後溫故。這裡主要採用.hover 方法來實現。code如下 btw,將jquery中.hove...