我已經在Odoo 10中定義了一個服務器操作。在視圖中創建按鈕可以很容易地使用服務器操作ID調用該服務器操作。例如,如果服務器操作ID是123:如何使用API調用Odoo服務器
<button name="123" type="action" string="Run Action"/>
有什麼方法可以通過API調用此操作嗎?我不確定如何執行此操作,因爲服務器操作沒有方法名稱。這只是一個ID。我也需要能夠傳遞上下文到行動。這可能嗎?
我已經在Odoo 10中定義了一個服務器操作。在視圖中創建按鈕可以很容易地使用服務器操作ID調用該服務器操作。例如,如果服務器操作ID是123:如何使用API調用Odoo服務器
<button name="123" type="action" string="Run Action"/>
有什麼方法可以通過API調用此操作嗎?我不確定如何執行此操作,因爲服務器操作沒有方法名稱。這只是一個ID。我也需要能夠傳遞上下文到行動。這可能嗎?
在Odoo的基本模塊中,定義了模型ir.actions.server
(base/ir/ir_actions.py)。有一種方法叫做run
,它應該可以從XMLRPC API調用。
要使用一個背景下,只需添加它命名爲context
電話作爲關鍵字參數(kwargs),如:
models.execute_kw(db, uid, password,
'res.partner', 'check_access_rights',
['read'], {'raise_exception': False, 'context': {'test': True}})
(例子來自official example 'Calling Methods'擴展)這似乎是一個有點神奇,但是它完成了here。
但是我怎樣才能用上下文來調用這個run方法呢?該方法是否需要在上下文中傳遞active_model和active_id?否則,您無法訪問操作代碼中的記錄。 – flyingL123
你可以隨時用本地創建的上下文來調用它。你如何使用API:本地或在Python庫(如oerpeek)的幫助下? – CZoellner
你能詳細說明你的意思嗎?你總是可以用本地創建的上下文來調用它?我使用[this library](https://github.com/DarkaOnLine/Ripcord)從PHP腳本調用API。看看[Odoo文檔](http://www.odoo.com/documentation/10.0/api_integration.html),我沒有看到任何將'context「傳遞給方法的方法。它表示每次調用execute_kw都需要一個按位置傳遞的參數的數組/列表,以及通過關鍵字傳遞參數的映射/字典(可選)。它沒有提到任何有關將'context「傳遞給方法的信息。 – flyingL123
通過_the API_你的意思是XML/JSON RPC? – Naglis
是的,我的意思是xml rpc API – flyingL123