我对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)