Django Match-team-player关系玩家选择

时间:2019-07-07 07:29:43

标签: django django-models

我有PlayerTeamMatch模型

一个团队可以有5名以上的球员和替补球员(也许8名,也许10多名球员) 但是,一场比赛中每队必须有5名球员。

我的问题:如何选择比赛中的球员(针对该球队)

我想要这样;一个团队= 8名球员-假设他们的名字是a,b,c,d,e,f,g,h

a,b,c,d,e参加这场比赛。

B队= 7名球员,名字分别为k,l,m,n,o,p

k,l,m,n,o参加这场比赛


class Team(models.Model):
    name=models.CharField(max_length=255,verbose_name="Takım ismi")
    short_name=models.CharField(max_length=25,null=True,blank=True)
    slug=models.SlugField(max_length=120,unique=True)
    bio=models.TextField()



class Player(models.Model):
    slug=models.SlugField(unique=True,max_length=120)
    team= models.ForeignKey(Team,related_name='player',verbose_name='Team',on_delete=models.PROTECT,null=True,blank=True)...


class Match(models.Model):
    name=models.CharField(max_length=255)
    slug=models.SlugField(unique=True,max_length=255)
    map=models.ForeignKey('GameMap',null=True,blank=True,related_name='matchmap',on_delete=models.PROTECT)
    league=models.ForeignKey('League',blank=True,null=True,on_delete=models.PROTECT,related_name='matchleague')
    team1=models.ForeignKey('Team',related_name='team1')
    team2=models.ForeignKey('Team',related_name='team2')...

1 个答案:

答案 0 :(得分:0)

您可以选择这样的球队和球员

match = Match.object.select_related().filter(name="match_name")
first_team = match.team1
sec_team = match.team2

first_players = Player.object.select_related().filter(team=first_team)
sec_players = Player.object.select_related().filter(team=sec_team)

但是您忘记了玩家名称字段吗?

相关问题