如何在django中执行查询,选择我是团队成员的所有项目?

时间:2009-05-20 07:33:37

标签: python django pinax

我的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}查询中的the django documentation,但我找不到我的用例。

非常感谢! 尼克。

1 个答案:

答案 0 :(得分:4)

这里不需要in,Django会在ManyToMany查找中自动处理。

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

你真正想要的是非常简单:

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

request.user.team_set.all()