【问题标题】:How to get all users of a group in Django?如何在Django中获取一个组的所有用户?
【发布时间】:2017-01-27 23:32:09
【问题描述】:

我想获取 Django 组中所有用户的列表。例如:

User.objects.filter(group='Staff')

我在文档中的任何地方都找不到如何执行此查询。

【问题讨论】:

  • 我查了一下,但我无法理解为什么我必须导入 Permission 来查询 Group 的用户。太混乱了。
  • 如果您查看第二个答案,您会发现您不必这样做。
  • 看起来像这样User.objects.filter(group__name='Staff')。但是这个例子存在于第一条评论的建议答案中。
  • @SardorbekImomaliev 它应该是复数形式,例如 groups__name,因为用户和组模型之间的关系是 M2M。

标签: django


【解决方案1】:

此查询允许您通过组 id 而不是组名来查找用户:

group = Group.objects.get(id=group_id)
users = group.user_set.all()

这是一个让您可以按组名搜索的查询:

users = User.objects.filter(groups_name='group_name')

【讨论】:

  • 只是一个小修改,需要使用双下划线users = User.objects.filter(groups__name='group_name')
  • 必须先导入模型吗?
【解决方案2】:

以下查询解决了我的问题。

User.objects.filter(groups__name='Staff')

感谢@SardorbekImomaliev 解决这个问题。

【讨论】:

  • 有没有办法在按组 ID 而不是组名过滤的同时获取用户?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 2010-09-27
  • 1970-01-01
  • 2015-10-08
相关资源
最近更新 更多