下面的浏览器视图应该返回其上下文中的第一个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站点对象,当被调用时生成folder_listing的KeyError,如果我调用content对象,则得到document_view的AttributeError
这里有很多的组合,调用不同对象的不同适配器。还没有找到可以呈现页面的正确对象。有人知道怎么做吗?
发布于 2011-06-16 23:41:35
看看http://pypi.python.org/pypi/plone.subrequest。
发布于 2011-06-16 09:17:06
当我在pdb中尝试这一点时,一个简单的plones[0]()工作得很好。
https://stackoverflow.com/questions/6368452
复制相似问题