视图可以定义__bobo_traverse__方法吗?

时间:2014-05-08 16:15:52

标签: plone

我正在努力让ARFilePreview与更新版本的Plone一起使用。该产品定义了一个具有自己的__bobo_traverse__方法的视图。不幸的是,ZPublisher不会调用此方法。

traverseName()中的BaseRequest.py方法有:

     if IPublishTraverse.providedBy(ob):
        ob2 = ob.publishTraverse(self, name)
     else:
        adapter = queryMultiAdapter((ob, self), IPublishTraverse)
        if adapter is None:
            ## Zope2 doesn't set up its own adapters in a lot of cases
            ## so we will just use a default adapter.
            adapter = DefaultPublishTraverse(ob, self)
            ob2 = adapter.publishTraverse(self, name)

我希望它采用else的情况,但它会导致404,因为if返回True。

有一个简单的解决办法吗?

1 个答案:

答案 0 :(得分:2)

定义一个名为publishTraverse的方法(与__bobo_traverse__相同的args)并从中调用现有的__bobo_traverse__