我有一个模型课
class MobaTournament(Tournament):
teams=models.ManyToMany(Team)
如果一场比赛有20支队伍。我想排名第一,第二,第三。您如何建议我这样做? 喜欢;
1.XXX team
2.XXX team
3.XXX team
答案 0 :(得分:1)
您可以将其存储在through=...
table [Django-doc]中。喜欢:
class MobaTournament(Tournament):
teams = models.ManyToMany(Team, through='MobaTeam')
class MobaTeam(models.Model):
moba_tournament = models.ForeignKey(MobaTournament, on_delete=models.CASCADE)
team = models.ForeignKey(Team, on_delete=models.CASCADE)
points = models.IntegerField(default=0)
基本上,如果存在一个具有给定MobaTeam
和给定moba_tournament
的{{1}},则该team
是该team
的成员teams
,反之亦然。
因此,我们可以为该比赛存储并更新该球队的积分。例如,您可以使用以下方式检索具有相应分数的球队:
moba_tournament