Plone - 从视图中的成员文件夹获取和列出对象

时间:2012-08-03 09:55:09

标签: python object plone directory zope

我想创建一个视图,列出特定文件夹中的对象(例如root / Members / myname)。 这该怎么做?我不知道怎么回到文件夹。类似的东西:

items = []
folder = getFolder('/Members/' + myname)
for i in folder:
    if isinstance(news, i):
        items.append(i.title)

嗯?

2 个答案:

答案 0 :(得分:3)

您可以通过使用带有深度限制的路径索引,要求目录列出给定文件夹的内容:

from Products.CMFCore.utils import getToolByName

catalog = getToolByName(context, 'portal_catalog')
contents = catalog(path=dict(query='/root/Members/' + myname, depth=1))

有关详细信息,请参阅quering the catalog

或者,您可以遍历到相关文件夹并在其上调用getFolderContents皮肤方法:

memberFolder = context.unrestrictedTraverse('/root/Members/' + myname)
contents = memberFolder.getFolderContents()

后者会为您搜索目录。

答案 1 :(得分:0)

你可以这样做:

items = [obj.Title 
           for id,obj in context['test-folder'].items()
               if isinstance(news, obj)]

更多信息http://collective-docs.readthedocs.org/en/latest/content/listing.html#listing-the-folder-items-using-portal-catalog