1

我想创建一个视图,其中列出了特定文件夹中的对象(比如 root/Members/myname)。这该怎么做?我不知道如何引用文件夹。就像是:

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

嗯?

4

2 回答 2

3

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

from Products.CMFCore.utils import getToolByName

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

有关详细信息,请参阅查询目录

或者,您可以遍历有问题的文件夹并在其getFolderContents上调用 skin 方法:

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

后者为您进行目录搜索。

于 2012-08-03T12:30:40.013 回答
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

于 2012-08-03T11:03:48.793 回答