我的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,但我找不到我的用例。
非常感谢! 尼克。
答案 0 :(得分:4)
这里不需要in
,Django会在ManyToMany查找中自动处理。
此外,您需要了解数据库字段必须始终位于查找的 left 上,因为它们实际上是作为函数的参数处理的。
你真正想要的是非常简单:
Team.objects.filter(team_members=request.user)
或
request.user.team_set.all()