Как добавить два поля в качестве внешнего ключа к таблице? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть две таблицы "команда" и "матч". каждая команда может участвовать в разных матчах, и в каждом матче может быть две или более команд, поэтому это множество отношений. Вот моя модель матча:

class Match(models.Model):
    result = models.CharField(max_length=10, default='')
    winner = models.??????
    team = models.ManyToManyField(Team, related_name='team')
    referee = models.ForeignKey(User, on_delete=models.PROTECT, 
        related_name='referee')

Победителем каждого матча также является команда, но я не знаю, как справиться с этим. я должен определить это как внешний ключ к командному столу? какой правильный путь?

Ответы [ 2 ]

3 голосов
/ 23 октября 2019

Используйте ForeignKey:

winner = models.ForeignKey(Team, related_name='matches_won')
2 голосов
/ 23 октября 2019

Аргумент related_name указывает обратное отношение из вашей промежуточной таблицы, используйте:

winner = models.ForeignKey(Team, related_name='winning_team')

Редактировать: Нико фактически назвал related_name логически лучше, так как можно было бы получить доступ к match es_won из team объект.

...