过滤通过

问题描述:

我有模式:过滤通过

class Player(models.Model) : 
    ... 
    teams = models.ManyToManyField("Team", through="PlayerTeam") 

class Team(models.Model) : 
    ... 
    players = models.ManyToManyField("Player", through="PlayerTeam") 

class PlayerTeam(models.Model) : 
    player = models.ForeignKey(Player) 
    team = models.ForeignKey(Team) 
    date_begin = models.DateField() 
    date_end = models.DateField(blank=True, null=True) 

我想谁在玩在选择球队所有球员(DATE_END为空)。我尝试这样做:

team = get_object_or_404(Team, pk=id) 
players = team.players.filter(date_end__isnull=True) 

,但它不工作,因为现场 'DATE_END' 是不是在播放模式

使用此:

players = team.playerteam_set.filter(date_end__isnull=True).values_list('player', flat=True) 
+0

它返回的玩家ID的列表。我想获得一个球员列表对象 – Heniek

+1

你是否需要应用任何更多的查询集过滤器?如果不是,只需在'team.playerteam_set.filter(date_end__isnull = True).select_related()]'中使用'[tp.player for tp''。 – ilvar

+0

我想通过播放器模型 – Heniek