2011-06-15 32 views
0

我有一個Python函數註冊爲Plone視圖。我需要能夠從這個註冊函數中調用另一個函數。我不確定是否最好將其他函數註冊爲視圖,並嘗試調用該函數(不知道如何調用其他視圖),還是有更好的方法來處理這個問題。Python Plone視圖調用他人

基本上我在Python中創建一個需要從其他Python函數(註冊爲視圖)中調用的函數。

  • 編輯 - 我曾嘗試調用它像任何其他功能:

(pytest.py)
def Test(self):
return "TEST"

在我的Python腳本註冊爲一個觀點:

import pytest
def PageFunction(self):
return pytest.Test()

但是,這個a路面似乎崩潰。如果我離開pytest.Test()並返回一個簡單的字符串,它似乎工作正常(所以我不認爲該import pytest行是造成任何問題...)

+0

你說的崩潰是什麼意思?通常在Python中,當出現問題時應該回溯。 (無限遞歸可能導致python解釋器死亡而無追蹤,尤其是在Mac OS X上。集體python擴展包含修補該bug的補丁。) – 2011-06-15 17:58:10

+0

良好的調用!看着回溯導致我找到解決方案!謝謝勞倫斯! – lightningmanic 2011-06-15 18:09:39

回答

1

只需導入它並將其稱爲任何其他功能。你不想讓它成爲一個視圖 - 這需要你做一個MultiAdapter查找,這是一個真正的痛苦,而且完全沒有必要。

[編輯 - 嚴格使用視圖是MultiAdapter查找,但你可以通過遍歷快捷方式,但仍然是不值得]

+0

我的函數定義不能有典型的「自我」作爲參數 - 除此之外,這是解決方案。 – lightningmanic 2011-06-15 18:12:43

+0

@blacksheep這是正確的 - 「自我」是一種方法的參數。獨立方法沒有「自我」,儘管你可能仍然需要傳遞一個對象。 – Auspex 2011-06-15 21:38:33