Django中的ForeignKey查找包括不存在的

时间:2015-01-07 08:59:16

标签: django

鉴于以下模型: -

class Player(models.Model):
    pass

class Game(models.Model):
    date = models.DateField(unique=True)
    player_chosen = models.ManyToManyField(
        Player,
        through='GamePlayerMembership'
    )

class GamePlayerMembership(models.Model):
    game = models.ForeignKey(Game)
    player = models.ForeignKey(Player)
    injured = models.BooleanField(default=False)

在过去10场比赛中,球员没有受伤的球员会员资格最有效的方法是什么。

对于某些游戏,可能甚至不存在该玩家和该游戏的GamePlayerMembership,但如果有游戏,那么我需要10列表中的该项为无。

我在想,如果我能抓住那些没有该球员会员资格的比赛,将它们与那些有比赛的比赛结合起来,并且他们没有受伤,然后拿走最后10名那就行了,但我真的不知道如何去做第一点。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

Game.objects.filter(gameplayermembership__player=player, gameplayermembership__injured=False)

或:

Game.objects.exclude(gameplayermembership__player=player)