我正在編寫一個自定義視圖來解決在Plone 4的表視圖中顯示事件的錯誤開始和結束時間的錯誤。但是,當我調用我的視圖時,出現以下錯誤:Plone 4 Table View解決方案
Traceback (innermost last):
Module ZPublisher.Publish, line 116, in publish
Module ZPublisher.BaseRequest, line 498, in traverse
Module ZPublisher.BaseRequest, line 343, in traverseName
Module ZPublisher.BaseRequest, line 110, in publishTraverse
Module zope.component._api, line 122, in queryMultiAdapter
Module zope.component.registry, line 240, in queryMultiAdapter
Module zope.interface.adapter, line 522, in queryMultiAdapter
TypeError:__init__
() takes exactly 2 arguments (3 given)
它已經一段時間,因爲我已經創建了一個觀點,但我認爲(按照this)是__init__()
確實需要3個參數(個體經營,上下文請求)。無論如何這裏就是我的BrowserView中類看起來像此刻:
class NewEventsView(BrowserView):
"""Custom View for displaying events in a table with correct times"""
implements(INewEventsView)
def getCurrentEvents(self):
"""Method to return all active events in order"""
current_events = []
cat = getToolByName(self.context, 'portal_catalog')
brains = cat(portal_type='Event', review_state='published', sort_on='start')
for x in brains:
event = x.getObject()
if event.startDate > DateTime():
current_events.append(event)
return current_events
我試着添加__init__
如上面提到的頁面顯示的這個不同的變化,只是爲它赫克給它一個__init__(self, context):
只是爲了看看2個參數是否真的會改變任何東西,並給出完全相同的錯誤。
我(在Python 2.6.6的virtualenv)從瀏覽器/ configure.zcml中
BrowersView註冊測試這個在Mac OS X Snow Leopard的一個Plone 4.0.2網站(我扔進一個主題此我也在工作)。我打電話http://localhost:8080/plone/events/new_events_view來查看視圖的外觀並獲得上述錯誤。我也嘗試在portal_types中爲主題註冊視圖,在導航到http://localhost:8080/plone/events之前它會給我提供該錯誤,直到我移除該視圖。
<browser:page
for="*"
name="new_events_view"
class=".newEventsView.NewEventsView"
template="newEventsView.pt"
permission="zope.Public"
allowed_interface=".interfaces.INewEventsView"
/>
任何幫助將不勝感激。另外,我知道這是一小塊代碼,但如果你認爲它可以以更好的方式完成,那麼它會分開,我是一個總是在尋找改進方法的學生。
感謝
對於記錄:回溯指出'__init__'方法只發現了需要兩個參數,同時主叫方試圖在第3的製作傳遞你會怎樣。 – 2011-04-08 21:20:31
是的,我抓住了,我不知道這個'__init__'是在哪裏,因爲正如我上面所說,無論我如何改變'__init__'爲我的看法,我得到相同的結果。 – keiththomps 2011-04-08 21:37:00
您能提供關於此視圖的ZCML註冊的更多詳細信息,以及您從哪裏導入BrowserView?另外,你用什麼URL訪問視圖? – 2011-04-09 08:50:15