我有所有被查找的对象,以便为解释器提供父对象和对象子对象。我希望在没有递归的情况下做到这一点,因为 zope 不欣赏这种传统的递归。
我将视图上下文设置为递归的根对象,以开始附加对象,然后遍历这个过滤的 intid/对象列表,寻找以该对象为父对象的对象。从那里我寻求入门代码,希望有人帮助我。
也许这个小技巧对你有用,对我有用。
您可以通过 PathIndex (getPhysicalPath) 限制搜索结果,然后按字母顺序对其进行排序:
lst = context.Catalog.searchResults(path='/parentNodeId')
lst.sort()
print lst
你会看到这样的东西:
# /parentNodeId/
# /parentNodeId/folder/
# /parentNodeId/folder/file1.jpg
# /parentNodeId/folder/file2.jpg
# /parentNodeId/folder/file1.jpg
# /parentNodeId/folder2/
# /parentNodeId/folder3/
# /parentNodeId/folder3/file1.jpg
# /parentNodeId/folder3/file2.jpg
我认为从这个输出中你可以很容易地构建一个树结构