2
我有以下型号:Django的注释问题
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作为平局)。我能想到的唯一的事情就是做3次独立的查询,我对结果进行筛选,然后注释,像这样:
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'))
有没有更有效的方式来实现这一目标?
谢谢!
感谢您的回复,虽然恐怕我不太明白如何使用值将帮助我找到胜利,损失和关系的单个查询。你介意扩展你的例子多一点? – user417918