2011-12-02 2 views
2

나는 관계로 따라가 :최대 기능 장고 모델

class Question(models.Model): 
    content = models.CharField(max_length=128) 

class Answer(models.Model): 
    content = models.CharField(max_length=128) 
    question = models.ForeignKey(Question) 
    num_vote = models.IntegerField() 

내가 최대 투표가 답변을 검색 할 수 있습니다. 나는이 진술을 시도했지만 올바르지 않다.

answers = Answer.objects.filter(question__exact=1).annotate(Max('num_vote')) 

답변

1

몇 가지 미리 정의 된 답변이 있습니까? 예 : 5 높은 득점 답변은 최대 모든 대답을해야하는 경우 num_vote 당신이이 쿼리를 필요

answers = Answer.objects.filter(question=somequestion).order_by('-num_vote')[:5] 

를 사용합니다. 특정 Question에 대한 모든 답을 얻으려면

max_score = Answer.objects.filter(question=somequestion).aggregate(score=Max('num_vote')) 
answers = Answer.objects.filter(question=somequestion, num_vote=max_score['score']) 
+0

정말 고마워요. –

0

첫째, 당신은 Question의 인스턴스를 사용할 수 있습니다

question = Question.objects.get(...) 
answers = Answer.objects.filter(question=question).annotate(Max('num_vote')) 

둘째, 위에서 언급 한 문제에 대한 이유가 될 수 있습니다 ?

+0

Joachim Pileborg에게 감사드립니다. 하지만 최대 num_vote가있는 대답을 검색하고 싶습니다. 예 : 답이 3 개 있습니다. 답변 1에는 3 개의 num_vote가 있습니다. Answer 2는 1 num_vote이고 Answer 3은 3 num_vote입니다. 결과는