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)
我无法决定将 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)