过滤通过
问题描述:
我有模式:过滤通过
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)
它返回的玩家ID的列表。我想获得一个球员列表对象 – Heniek
你是否需要应用任何更多的查询集过滤器?如果不是,只需在'team.playerteam_set.filter(date_end__isnull = True).select_related()]'中使用'[tp.player for tp''。 – ilvar
我想通过播放器模型 – Heniek