1

我正在开发一个 django 应用程序来管理我的曲棍球池,但在定义查询时遇到了麻烦。相关模型如下所示:

class Player(models.Model):
    name = models.CharField(max_length=100)

class Team(models.Model):
    pool = models.ForeignKey(Pool)
    manager = models.ForeignKey(User)
    active_players = models.ManyToMany(Player)

在我的一个观点中,我想查看每个玩家,并找出该玩家是否为某人所有。如果不是,则将它们添加到传递给模板的列表中。

除了查询他们是否是具有特定 pool.id 且在其 active_player 列表中有特定玩家的团队之外,我已经完成了所有工作。到目前为止我有这个:

players = Player.objects.all()
for player in players:
    teams = Team.objects.filter(???not sure what to put here???)
    #and then something here to check if teams is empty

任何帮助表示赞赏。谢谢!

4

2 回答 2

4

如果您有该球员,那么您可以通过以下方式访问该球员被分配到的球队:

player.team_set.all()

如果您只想获取不在团队中的玩家列表,则更容易:

Player.objects.filter(team__isnull=True)
于 2012-07-05T19:31:01.803 回答
0

试试这样的东西:

without_team = []
for player in Player.objects.all():
    if not Team.objcets.filter(active_players__in=[player]):
        without_team.append(player)

未经测试的代码片段

于 2012-07-05T19:35:51.600 回答