2012-05-20 157 views
1

我有模式:過濾通過

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' 是不是在播放模式

回答

0

使用此:

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