2
나는 다음과 같은 모델이 있습니다장고 주석 질문
class Pick(models.Model):
league = models.ForeignKey(League)
user = models.ForeignKey(User)
team = models.ForeignKey(Team)
week = models.IntegerField()
result = models.IntegerField(default=3, help_text='loss=0, win=1, tie=2, not started=3, in progress=4')
나는 결과의 해제를 기반으로 순위 테이블을 생성 얻으려고,하지만 나는 그것이 하나의 쿼리에서 수행하는 방법을 확실 해요. 나는 특정 리그의 각 사용자에 대해 = 1 (승리로), 0 (손실로) 및 2로 매기는 결과 수를 얻는 데 관심이 있습니다.
Pick.objects.filter(league=2, result=1).annotate(wins=Count('result'))
Pick.objects.filter(league=2, result=0).annotate(losses=Count('result'))
Pick.objects.filter(league=2, result=2).annotate(ties=Count('result'))
이를 달성하기 위해보다 효율적인 방법이 있나요 : 나는 결과를 필터링 다음과 같이 주석을 어디에 내가 생각할 수있는 유일한 방법은 3 개 별도의 쿼리를하는 것입니다?
감사합니다.
답장을 보내 주셔서 감사합니다. 값을 사용하면 승패, 손실 및 동점에 대한 단일 쿼리를 얻는 데 도움이 될 것입니다. 당신의 예제를 조금 더 넓혀 주시겠습니까? – user417918