如何在python中呈现plone站点的首页?

时间:2011-06-16 07:26:43

标签: python plone zope

以下浏览器视图应该在其上下文中返回第一个Plone网站首页的内容。但是,我似乎无法获得能够呈现html内容的对象。

from Products.Five import BrowserView
from zope.component import getMultiAdapter

class RenderFirst (BrowserView):
    def __call__ (self):

        def findPlones (context):
            plones = context.objectValues("Plone Site")
            folders = context.objectValues("Folder")
            folders = set(folders).difference(set(plones))
            for folder in folders:
                plones += findPlones(folder)
            return plones

        plones = findPlones(context)


        if len(plones):
            default_page = plones[0].getDefaultPage()
            content = plones[0].unrestrictedTraverse (default_page)
            view = getMultiAdapter ((content, self.request))
            return view()

        else:
            return "no plone"

运行时的前一个代码告诉我对象视图不可调用。

plones[0]是一个Plone Site对象,调用后会为KeyError生成folder_listing 如果我拨打content对象,我会AttributeError

获得document_view

这里有很多组合,可以调用不同对象的不同适配器。尚未找到可以呈现页面的正确对象。有谁知道怎么做?

2 个答案:

答案 0 :(得分:3)

当我在pdb中尝试这个时,一个简单的plones[0]()可以正常工作。

答案 1 :(得分:1)