我想创建一个视图,列出特定文件夹中的对象(例如root / Members / myname)。 这该怎么做?我不知道怎么回到文件夹。类似的东西:
items = []
folder = getFolder('/Members/' + myname)
for i in folder:
if isinstance(news, i):
items.append(i.title)
嗯?
答案 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)]