Python 如何使用Django3中的条件聚合跨M2M关系创建查询?
我为一个小测验之夜提出了这个简单的数据模型。现在,我想创建一个查询集,其中包含每个团队和回合的赢得分数(如果answer.is_correct为true,则计数)。此外,我想显示每个团队的总得分。不幸的是,我没有得到许多关系的Python 如何使用Django3中的条件聚合跨M2M关系创建查询?,python,django,orm,Python,Django,Orm,我为一个小测验之夜提出了这个简单的数据模型。现在,我想创建一个查询集,其中包含每个团队和回合的赢得分数(如果answer.is_correct为true,则计数)。此外,我想显示每个团队的总得分。不幸的是,我没有得到许多关系的注释和值逻辑 class Team(models.Model): name = models.CharField(max_length=100) class Game(models.Model): attending_team = models.M
注释
和值
逻辑
class Team(models.Model):
name = models.CharField(max_length=100)
class Game(models.Model):
attending_team = models.ManyToManyField(Team, blank=True)
title = models.CharField(max_length=200)
class Turn(models.Model):
game = models.ForeignKey(Game, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
class Question(models.Model):
turn = models.ForeignKey(Turn, on_delete=models.CASCADE)
question_text = models.CharField(max_length=500)
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
team = models.ForeignKey(Team, on_delete=models.CASCADE)
is_correct = models.BooleanField(default=False)
answer_text = models.CharField(max_length=500, blank=True, null=True)
排行榜应如下表所示:
等级
队名
第一回合
第二回合
第三回合
全部的
1.
A队
3.
2.
5.
10
2.
B队
1.
1.
3.
5.
3.
C队
1.
3.
0
4.