Django

时间:2018-12-13 02:15:31

标签: python django django-models django-forms

我的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(),但是当我组建第二支队伍时,第一支队伍的成员便与第一支队伍共享。

我应该使用什么?

2 个答案:

答案 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()即可达到您的期望。