【问题标题】:Django. Filter users by permissions / groups姜戈。按权限/组过滤用户
【发布时间】:2017-08-30 01:13:14
【问题描述】:

编程专家,您好! ;) 我是 django 编程的新手,我找不到任何有关如何通过权限获取用户列表的相关信息。我花了大约两个小时在网上浏览,有很多类似的问题,但没有一个是可以理解的。

我需要的是在我的 html 模板中获取具有管理员权限的用户列表并将其显示在面板中。

我一周前刚开始使用 django,我很难理解去哪里。遵循Similar problem 的最佳答案,我明白:

class Group(models.Model):
    myuser = models.ForeignKey(User, related_name='groups')

转到我的models.py,但我真的不知道该放在哪里

form.fields['myuser'].queryset = User.objects.filter(groups__name='foo')
form.fields['myuser'].queryset = User.objects.filter(groups__name__in=['foo'])

代码... :/

我也尝试过另一种解决方案(来自与上述相同的来源)

qs = User.objects.filter(groups__name__in=['foo'])

放到我的model.py中,比如:

class Group(models.Model):
    qs = User.objects.filter(groups__name__in=['Administrators'])

但是当我执行“makemigrations”时,我会遇到很多错误。

提前感谢您的理解

【问题讨论】:

  • 最好的起始资源之一可能是 Django 文档,以 intro 开头,以帮助您了解文件结构和相关信息docs.djangoproject.com/en/1.10/intro/tutorial01 关于您的问题,您的问题有很多错误,来自缩进您的代码在模型中具有查询集,这不是它的位置。包含错误堆栈来帮助您也是明智之举。
  • 你能把错误贴出来

标签: python html django web


【解决方案1】:

对于用户所属的用户,您不仅要根据用户的权限,还要根据组的权限进行过滤。

一种:

perm = Permission.objects.get(codename='...')
User.objects.filter(Q(groups__permissions=perm) | Q(user_permissions=perm)).distinct()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2019-08-02
    • 2011-01-27
    • 2017-05-25
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多