2013-09-08 2 views
0

나는 이것이 어떻게 작동하는지 알지만, 알아낼 수없는 버그가 있음을 알고 있다고 생각했습니다.django에서 모델의 쿼리 세트를 함수로 비교하는 방법

각각의 모델에 동적으로 핫온 값을 반환하는 'hotness()'메소드가있는 쿼리 세트가 있습니다.

from item.models import Item 

items = Item.objects.all() 
items = sorted(items, key=lambda x: x.hotness, reverse=True) 


# it does not work. 

for i in items: 

    print i.hotness() # totally out of order, not even close 

어떤 생각 : 여기

내 코드? 감사.

+1

'xhotness'는 거의 항상 true를 반환하는 열 (또는 속성)이며,'x.hotness()'는 메서드 호출입니다. 옳은 것을 기준으로 정렬하는지 확인하십시오. –

답변

2

정확한 사용법에서는 sorted()에서 사용하기 전에 QuerySet을 목록으로 변환하지 않습니다.

items = list(Item.objects.all()) 
items = sorted(items, key=lambda x: x.hotness(), reverse=True) 

이 작동해야합니다.

+1

나는 람다에서'x.hotness()'를 사용한다고 확신한다. –

+0

@BurhanKhalid 예! 당연하지, 고마워! : D –

+0

아쉽다. 필자는 어딘가에서 문서의 핵심 매개 변수가 함수 (반환 값이 아닌)를 전달해야한다고 생각했다. 내 실수로 아마추어, 고마워. –

관련 문제