我的models.py文档中具有以下结构:
class Player(Human):
name = models.CharField(max_lenght=24)
jersey_number = models.IntegerField()
class Coach(Human):
name = models.CharField(max_lenght=24)
class Team(models.Model):
name = models.CharField(max_length=24)
players = models.SomethinToSomething(Player)
coaches = models.SomethinToSomething(Coach)
我想在我的管理部分中创建团队,并且在每个团队中添加一些球员和一些教练,我希望一个球员仅与创建它的球队相关,所以如果我在A队中对我来说是不可能的,并不能添加其他团队的球员。
我尝试了OneToOne(),但我只能将一名球员和一名教练与团队联系起来。 我尝试过ManyToMany(),但是当我组建第二支队伍时,第一支队伍的成员便与第一支队伍共享。
我应该使用什么?
答案 0 :(得分:3)
我建议您做这样的事情,
class Team(models.Model):
name = # ..
class Player(models.Model):
name = # ..
jer_num = # ...
team = models.ForeignKey(Team, #..)
class Coach(models.Model):
name = # ..
team = models.ForeignKey(Team, #..)
当您添加球员或教练时,团队将被添加为选择字段。因为团队(大多数)保持不变,而球员和教练也有所变化,所以这将给您带来灵活性。 另外,如果您想添加诸如转移之类的内容,则可以在表单中使用团队。
答案 1 :(得分:0)
只需使用ForeignKey()
即可达到您的期望。