django 模型字段关系本身

django models field relation on it itself

我无法决定将 Django 模型字段与它自己的其他字段相关联的最佳方式。我有 Match class,它拥有现场团队(m-t-m 在其他模型上提交),我需要为每个团队存储比赛结果和相应的分数。一场比赛只能2支球队。

class Match(models.Model):
 teams = models.ManyToManyField(Team)
 tournament = models.ForeignKey(Tournament)
 match_round = models.ForeignKey(Round)
 team_1_hit = models.IntegerField(default=0)
 team_2_hit = models.IntegerField(default=0)

在这种情况下有两个 ForeignKey 字段是可以的。 ManyToManyField 可能会导致错误,届时将添加 3 个团队。所以你可以用 related_name:

指定两个 ForeignKey 字段
class Match(models.Model):
    team1 = models.ForeignKey('Team', related_name='team1')
    team2 = models.ForeignKey('Team', related_name='team2')
    tournament = models.ForeignKey(Tournament)
    match_round = models.ForeignKey(Round)
    team_1_hit = models.IntegerField(default=0)
    team_2_hit = models.IntegerField(default=0)