@Bjornie
Изучаю Python

Как проверить уникальность данных в полях ForeignKey?

Это моя достаточно простая модель с 6 полями для выбора игрока в команду, чтобы в последствии включить команду в матч, не добавляя игроков по-отдельности.
class Team(models.Model):
    team_name = models.CharField(max_length=255)
    t_1_id = models.ForeignKey(Player, related_name='+')
    t_2_id = models.ForeignKey(Player, related_name='+')
    t_3_id = models.ForeignKey(Player, blank=True, null=True, related_name='+')
    t_4_id = models.ForeignKey(Player, blank=True, null=True, related_name='+')
    t_5_id = models.ForeignKey(Player, blank=True, null=True, related_name='+')
    t_6_id = models.ForeignKey(Player, blank=True, null=True, related_name='+')

Вопрос: как проверить уникальность выбранного игрока. т.е. чтобы в каждом поле игрок был уникален. Приходили идеи при валидации формы (говорю про админку) читать id выбранных игроков, сверять их через цикл, добавляя во временный массив и т.д. Но получается много кода. Подскажите пожалуйста, есть ли варианты по-серьезнее и по-проще?
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
Astrohas
@Astrohas
Python/Django Developer
делайте m2m и не изобретайте велосипеды.
class Team(model.Model):
    ...
   players  = models.ManyToManyField(Player)

В Админке делаете filter_horizontal
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы