【问题标题】:Django - filter ManyToManyField?Django - 过滤ManyToManyField?
【发布时间】:2011-02-03 03:19:24
【问题描述】:

我不确定描述我想要做什么的最佳方式,所以请原谅我的标题。

我有两个模型,用户和组。 Group 包含字段 members,是一个 ManyToManyField 引用 User。

给定一个用户,我想找到该用户所属的所有组。

我的想法是做这样的事情:

groups = Group.objects.filter(user in members)

类似的东西。即使我意识到这是不对的

我尝试阅读此链接,但不知道如何申请: http://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valued-relationships

谢谢

编辑:

想通了 groups = Group.objects.filter(members__username=user.username)

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    如果你有用户并且你想要他的组然后开始查询,而不是这样;)

    这是一个例子:

    james = User.objects.get(pk= 123)
    james_groups = james.group_set.all()
    

    【讨论】:

    • 我相信这只有在 ManyToManyField 上设置 related_name='groups' 属性时才有效
    【解决方案2】:

    最简洁的方式大概是

    groups = user1.group_set.all()
    

    它为您提供了一个可迭代的查询集。

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 2022-11-25
      • 1970-01-01
      • 2019-12-04
      • 2018-07-25
      • 2021-06-16
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多