2012-10-19 68 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