我如何储存比赛积分

时间:2019-07-12 14:37:14

标签: django django-models

我有一个模型课

class MobaTournament(Tournament):
    teams=models.ManyToMany(Team)

如果一场比赛有20支队伍。我想排名第一,第二,第三。您如何建议我这样做? 喜欢;

1.XXX team
2.XXX team
3.XXX team

1 个答案:

答案 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