Проблемы с модельными отношениями Джанго - PullRequest
0 голосов
/ 30 августа 2018

У меня маленькая проблема с моделями Django. Я пытаюсь создать сервис статистики игры, но не могу понять, как я могу выбрать игроков из каждой команды в качестве начального списка (не содержит всех командных игроков) игры. Сбор должен работать так, чтобы дома и посетитель разделили списки игроков. И тогда должно быть возможно создать, например, объект цели, где я мог бы выбрать игрока в качестве бомбардира только из стартового списка. Я уже пытался добавить в игру «HomeToManyField» для домашних игроков и игроков, но это не сработает. Требуется хотя бы небольшая фильтрация.

class Game(models.Model):
    series = models.ForeignKey(Series, related_name="game_series")
    date = models.DateTimeField(default=None, blank=True, null=True)
    home = models.ForeignKey(Team, related_name="game_home")
    visitor = models.ForeignKey(Team, related_name="game_visitor")


class Goal(models.Model):
    game = models.ForeignKey(Game,  related_name="goal_game")
    minutes = models.PositiveIntegerField(default=None, blank=True, null=True)
    seconds = models.PositiveIntegerField(default=None, blank=True, null=True)
    scorer = models.ForeignKey(Player, related_name="goal_scorer")
    assist = models.ForeignKey(Player, related_name="goal_assist")


class Save(models.Model):
    game = models.ForeignKey(Game, related_name="save_game")
    player = models.ForeignKey(Player, related_name="save_player")
    count = models.PositiveIntegerField(default=None, blank=True, null=True)

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

РЕДАКТИРОВАТЬ: Есть также модель игрока, которую я забыл объяснить ранее. Итак, обе команды уже определили список игроков, где выбрать состав для игры.

class Player(models.Model):
    team = models.ForeignKey(Team, on_delete=models.PROTECT, related_name="player_team")
    firstname = models.CharField(max_length=200, default=None, blank=True, null=True)
    lastname = models.CharField(max_length=200, default=None, blank=True, null=True)
    number = models.IntegerField(default=None, blank=True, null=True)
    description = models.TextField(default=None, blank=True, null=True)
...