Ограничение выбора для поля ForeignKey переменными экземпляра в модели - PullRequest
0 голосов
/ 23 января 2019

Я создал модель Match для приложения, относящегося к турниру (команда - просто другая модель):

class Match(models.Model):
    home_team = models.ForeignKey(Team, related_name="home_team", on_delete=models.CASCADE)
    away_team = models.ForeignKey(Team, related_name="away_team", on_delete=models.CASCADE)
    winning_team = models.ForeignKey(Team, related_name="winning_team", on_delete=models.CASCADE)

Мой вопрос: возможно ли ограничить выбор для поля winning_team только для home_team?или гости - команда?т.е. если я создаю форму для записи команды, которая выиграла, как я могу ограничить выбор в этом списке выбора только home_team и away_team?

1 Ответ

0 голосов
/ 23 января 2019

Вам лучше сделать winning_team простым выбором между "home_team" и "away_team"; если вам нужно, вы можете добавить свойство, чтобы фактическая команда-победитель зависела от значения этого поля. Например:

WINNERS = (
  ('H', 'Home team'),
  ('A', 'Away team'),
)
class Match(models.Model):
    ...
    winners = models.CharField(max_length=1, choices=WINNERS)

    @property
    def winning_team(self):
        return self.home_team if self.winners == 'H' else self.away_team
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...