2012-10-19 2 views
-1

내 장고 스포츠 앱에 일치하는 목록을 표시해야합니다. 나는 이미 모든 일치 목록을 갖는 함수를 정의했다. 각 항목이 DateTime "real_start"로 일치하므로 해당 날짜까지 정렬하고 싶습니다.장고 목록 정렬

matches = Match.live_matches.all() 

내가 matches.sort 시도 :

이 내 경기의 목록입니다 (키 = 람다 X : x.real_start을 = 진정한 역)

그러나 그것은 작동하지 않습니다.

도움이 될 것입니다. 감사합니다.

+2

에 정렬하는 경우 람다 필요, 그것은 일치하는'QuerySet' 없습니다 @Samuele Mattiuzzo가 제안한대로 Django의'QuerySet' API를 사용하여 정렬 할 수 있습니다. 양자 택일로, 당신은 @Dogbert metntioned으로'sort' 또는'sorted '를 사용하여 QuerySets (그리고 다른 유형의 iterables)리스트를 정렬 할 수 있습니다. –

답변

1

이 시도 :

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

정렬은 현재 위치에서의 방법입니다. 정렬은 일치합니다 (key = lambda x : x.real_start, reverse = True) – xfx

+0

고맙습니다. 나는 노력했다. 그리고 더 이상 오류가 없다. 그러나 그것은 효과가 없습니다. 일치 항목을 정렬하지 않습니다. – Marcolac

+0

좋아, 나는 새 목록 만들기 : matchess = sorted (matches, key = lambda x : x.real_start, reverse = True)를 만들려고 시도했다. 고맙습니다. 이제 정렬 (가장 오래된 DateTime 먼저 일치하는 표시하기 때문에) 정렬 싶습니다. 어떻게하는지 아십니까? – Marcolac

3

을 어쩌면 docs 봐?

Match.objects.date('real_start', 'day', order='DESC') 
당신은 당신의 live_matches의 함수 내에서 이것을 사용할 수 있습니다

, 당신은 일치하는`List` 아닌 그 날짜 필드

+2

'Match.live_matches.all(). order_by ('- real_start')'역시 작동해야합니다. – rxdazn