特定のフォルダー (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
上でスキン メソッドを呼び出すこともできます。
memberFolder = context.unrestrictedTraverse('/root/Members/' + myname)
contents = memberFolder.getFolderContents()
後者はカタログ検索を行います。
あなたはこのようにそれを行うことができます:
items = [obj.Title
for id,obj in context['test-folder'].items()
if isinstance(news, obj)]