【问题标题】:How to perform a query in django that selects all projects where I am a team member of?如何在 django 中执行查询以选择我所属的所有项目?
【发布时间】:2009-05-20 07:33:36
【问题描述】:

我的 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,但在那里找不到我的用例。

非常感谢! 尼克。

【问题讨论】:

    标签: python django pinax


    【解决方案1】:

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

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

    你真正想要的很简单:

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

    request.user.team_set.all()
    

    【讨论】:

    • 非常感谢您的提示,我一定是在文档中错过了这一点,这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多