2012-10-19 72 views
-1

我必須在我的Django體育應用程序中顯示匹配列表。我已經定義了一個函數來獲得所有匹配的列表。 每個匹配的日期時間爲「real_start」,我想在該日期之前對它們進行排序。在Django中排序列表

這是我的比賽名單:

matches = Match.live_matches.all() 

我試圖 matches.sort(鍵=拉姆達X:x.real_start,反向= TRUE)

,但它不工作。

任何幫助將受到歡迎。謝謝。

+2

排序這不是比賽的'List',這是比賽的'QuerySet'這可以使用Django的QuerySet API進行排序,正如@Samuele Mattiuzzo所建議的那樣。或者,你可以使用'sort'或'sorted'排序列表,QuerySets(和其他類型的迭代器),作爲@Dogbert metntioned –

回答

1

試試這個:

sort(matches, key=lambda x: x.real_start, reverse=True) 
+0

sort是一個就地方法,我想你的意思是排序(matches,key = lambda x: x.real_start,reverse = True) – xfx

+0

謝謝。我嘗試了,而且沒有錯誤了。但它不起作用。它不排序匹配。 – Marcolac

+0

好吧,我試着創建一個新的列表:matchess = sorted(matches,key = lambda x:x.real_start,reverse = True),它的作品find。謝謝。現在我想反轉這個排序(因爲它首先顯示與最早的DateTime匹配)。你知道怎麼做嗎? – Marcolac

3

也許看看docs

Match.objects.date('real_start', 'day', order='DESC') 

您可以使用此您live_matches函數內部,無需lambda表達式,如果你在約會現場

+2

'Match.live_matches.all()。order_by(' - real_start')'也可以工作 – rxdazn