我无法再为这位教练增加一名球员。基本上一个球员可以有很多教练,一个教练可以有很多球员。
我试图做多对多的关系,但后来我能够将同一个玩家添加到同一个教练两次。
我该怎么办?
class CoachPlayer(models.Model):
coach = models.OneToOneField('Coach', on_delete=models.CASCADE)
player = models.ForeignKey('player.Player', on_delete=models.CASCADE)
start_date = models.DateTimeField(auto_now_add=True)
答案 0 :(得分:1)
在模型中有coach
的外来引用。
现在玩家不能拥有多个教练,因此coach
和player
应该是唯一的。所以让他们独一无二。该模型变为:
class CoachPlayer(models.Model):
coach = models.ForeignKey('Coach', on_delete=models.CASCADE)
player = models.ForeignKey('player.Player', on_delete=models.CASCADE)
start_date = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ('coach', 'player')