Django模型关系问题

时间:2018-08-30 05:48:37

标签: django django-models django-admin

我对Django模型没什么问题。我正在尝试创建一个游戏统计服务,但无法弄清楚如何从每个团队中挑选球员作为比赛的开始名单(不包含所有团队球员)。挑选应该起作用,以便家庭和访客具有分开的玩家列表。然后应该可以创建例如目标对象,在这里我只能从起始名册中选择球员作为得分手。我已经尝试过将家庭和访客玩家设置为Game模型中的ManyToManyField,但这是行不通的。至少需要一些过滤。

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)

问题是:我应该如何修改模型以获得期望的结果?注意:我正在使用管理员视图进行数据输入,因此建议的解决方案应从那里开始。

编辑:还有一个Player模型,我之前已经忘了解释。因此,两支球队都已经定义了为游戏挑选花名册的球员名单。

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)

0 个答案:

没有答案