Как ограничить выбор отношения "многие ко многим"?
Я использую Python + Django и сейчас в моей модели это:
class Team(models.Model):
player = models.ManyToManyField(Player, related_name="player", through="Team_Player")
squad = models.ManyToManyField(Player, related_name="squad", blank=True)
class Player(Person):
name = models.CharField(max_length=100)
class Team_Player(models.Model):
team = models.ForeignKey(Team)
player = models.ForeignKey(Player)
Есть ли способ ограничить Team.squad только наличием игроков в отношениях Team.player? Я пытался использовать limit_choices_to безуспешно. Есть какие-нибудь подсказки?
1 ответ
Нет способа сделать это в Django ORM. Вам нужно будет реорганизовать ваш дизайн так, чтобы команда состояла из отрядов, а отряд состоял из игроков; добавить свойство или метод в модель команды, чтобы получить всех игроков в текущей команде.