場景描述:
在添加自定義服務器動作 “復制全部”后發現直接創建了新的記錄,並且直接進入到form保存完的狀態。
如何解決:
if yourself_obj_copy: return { 'type': 'ir.actions.act_window', 'view_type': 'form', 'view_mode': 'form', 'res_model': '你的模塊名.模型名', 'res_id': yourself_obj_copy.id, 'context': self.env.context, 'flags': {'initial_mode': 'edit'}, }
加上上方紅色部分,就可以默認進入form視圖的編輯狀態。
這里需要注意一下:odoo自帶的服務器動作 -- 復制 其實也不是復制,而是創建了一份新的直接保存了,
即使你點擊復制進入新的編輯界面,這時不點“保存”,直接“丟棄”,其實是沒有效果的,這條記錄已經在點擊“復制”的時候創建了。
頁面跳轉可以參考如下文章:
在odoo視圖中有時點擊按鈕需要跳轉到另一個視圖,此時有如下參數需要注意
系統的默認值:
_defaults = { 'type': 'ir.actions.act_window', 'view_type': 'form', 'view_mode': 'tree,form', 'context': '{}', 'limit': 80, 'target': 'current', 'auto_refresh': 0, 'auto_search':True, 'multi': False, }
# type: 動作類型,默認為ir.actions.act_window
# view_type: 跳轉時打開的視圖類型
# view_mode: 列出允許使用的視圖模式
# context: 給目標視圖傳參數,如默認搜索之類的,如{‘search_default_group_assign’:1}
# limit: 列表視圖一頁的記錄數
# target: 打開新視圖的方式,current是在本視圖打開,new是彈出一個窗口打開
# auto_refresh:為1時在視圖中添加一個刷新功能
# auto_search:加載默認視圖后,自動搜索
# multi:視圖中有個更多按鈕,若multi設為True, 更多按鈕顯示在tree視圖,否則顯示在form視圖
以下內容是一些需特別注意的參數
# res_model:想打開視圖的對應模塊
# res_id: 參數為id,加載指定id的視圖,但只在view_type為form時生效,若沒有這個參數則會新建一條記錄
# view_id: 參數是id,若一個模塊有多於>1個視圖時需要指定視圖id,可根據視圖名稱去ir.ui.view模塊搜索
# views:是(view_id,view_type) 元組對列表,第一組是動作默認打開的視圖
# flags: 對視圖面板進行一些設置,如{‘form’: {‘action_buttons’: True, ‘options’: {‘mode’: ‘edit’}}}即對form視圖進行一些設置,action_buttons為True時調出編輯保存按鈕,options’: {‘mode’: ‘edit’}時則打開時對默認狀態為編輯狀態
http://www.binqsoft.com/blog/2017/07/29/odoo%E8%AF%95%E5%9B%BE/
https://www.cnblogs.com/ygj0930/p/7150860.html