カタログの結果を複数のフィールドで並べ替える必要があります。
私の場合、最初に年で並べ替え、次に月で並べ替えます。年と月のフィールドは、カスタム コンテンツ タイプ (item_publication_year
およびitem_publication_month
それぞれ) に含まれています。
しかし、私は望む結果を得ていません。年月は全く順不同です。2006 年、2005 年、2004 年など、降順で表示されます。
以下は私のコードです:
def queryItemRepository(self):
"""
Perform a search returning items matching the criteria
"""
query = {}
portal_catalog = getToolByName(self, 'portal_catalog')
folder_path = '/'.join( self.context.getPhysicalPath() )
query['portal_type'] = "MyContentType"
query['path'] = {'query' : folder_path, 'depth' : 2 }
results = portal_catalog.searchResults(query)
# convert the results to a python list so we can use the sort function
results = list(results)
results.sort(lambda x, y : cmp((y['item_publication_year'], y['item_publication_year']),
(x['item_publication_month'], x['item_publication_month'])
))
return results
誰か助けてくれませんか?