我想创建一个视图,其中列出了特定文件夹中的对象(比如 root/Members/myname)。这该怎么做?我不知道如何引用文件夹。就像是:
items = []
folder = getFolder('/Members/' + myname)
for i in folder:
if isinstance(news, i):
items.append(i.title)
嗯?
您可以通过使用路径索引,要求目录列出给定文件夹的内容,并具有深度限制:
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()
后者为您进行目录搜索。
你可以这样做:
items = [obj.Title
for id,obj in context['test-folder'].items()
if isinstance(news, obj)]