0

我的 django 应用程序中有团队的概念。

class Team(models.Model):
    name = models.CharField(max_length=200)
    #snip
    team_members = models.ManyToManyField(User)

我想获取当前登录用户所属的所有团队。类似的东西

Team.objects.all().filter(request.user.id__in = team_members.all())

这显然是行不通的。有没有人有一些关于如何在不直接进入 sql 的情况下进行此类查询的建议?我确实查看了“in”查询的 django 文档,但在那里找不到我的用例。

非常感谢!缺口。

4

1 回答 1

4

你不需要in在这里,Django 在多对多查找中自动处理。

此外,您需要了解数据库字段必须始终位于查找的左侧,因为它们实际上是作为函数的参数处理的。

你真正想要的很简单:

Team.objects.filter(team_members=request.user)

或者

request.user.team_set.all()
于 2009-05-20T08:48:11.187 回答