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上でスキン メソッドを呼び出すこともできます。

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 に答える