Как вы отображаете первую страницу сайта Plone в Python? - PullRequest
2 голосов
/ 16 июня 2011

В следующем браузере должен вернуть содержимое первой страницы первого сайта 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"

Предыдущий код при запуске говорит мне, что представление объекта не вызывается.* является объектом Plone Site и при вызове выдает KeyError для folder_listing, если я вызываю content объект, я получаю AttributeError для document_view

Здесь много комбинацийвызывая разные адаптеры разных объектов.Еще не нашли нужный объект, который может отобразить страницу.Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

3 голосов
/ 16 июня 2011

Когда я пытаюсь это сделать в pdb, простой plones[0]() работает нормально.

1 голос
/ 17 июня 2011
...