Поле отношений в Джанго - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть следующая структура в моем файле 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)

Я бы хотел в своем разделе администратора создавать команды, а внутри каждой команды добавить некоторых игроков и некоторых тренеров, я хочу, чтобы игроксвязан только с командой, в которой я его создал, поэтому, если я нахожусь в команде А, я не могу видеть и добавлять игрока другой команды.

Я пробовал OneToOne (), но могу связать толькоодин игрок и только один тренер в команде.Я попробовал ManyToMany (), но когда я попадаю во вторую команду, игроки первой команды делятся с первой командой.

Что мне использовать?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Я предлагаю вам сделать что-то вроде этого,

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, #..)

Когда вы добавите игрока или тренера, команда будет добавлена ​​в качестве поля выбора.Потому что команды (в основном) остаются прежними, а игроки и тренеры меняются, это даст вам гибкость.А также, если вы хотите добавить что-то вроде перевода, вы можете использовать команду в своих формах.

0 голосов
/ 13 декабря 2018

Просто используйте ForeignKey() для достижения желаемого.

...