我在Django的管理站点中创建了一个自定义组.

在我的代码中,我想判断用户是否在这个组中.我该怎么做?

推荐答案

您只需通过User上的groups属性即可访问组.

from django.contrib.auth.models import User, Group

group = Group(name = "Editor")
group.save()                    # save this new group for this example
user = User.objects.get(pk = 1) # assuming, there is one initial user 
user.groups.add(group)          # user is now in the "Editor" group

那么user.groups.all()返回[<Group: Editor>].

或者,您可以通过以下方式更直接地判断用户是否在组中:

if django_user.groups.filter(name = groupname).exists():

    ...

请注意,groupname可以是实际的Django Group对象.

Django相关问答推荐

将所有守护用户对象权限从一个Django用户重新分配给另一个Django用户

Django Admin:在一个部分中同时显示多个应用程序?

Django中的InvalidOperation错误[]

我如何获得已循环的每个项目的名称?

Django 模板文件夹

使用 Django 和 South 重命名应用程序

在 Django 的 TextField 中禁用 HTML 转义

Django - 站点匹配查询不存在

如果上下文中缺少变量,如何使 Django 模板引发错误

使用移动应用程序保护通信 [真实性、隐私和完整性]?

如何将 Django forms.ChoiceField 呈现为 Twitter Bootstrap 下拉菜单

Django populate() 不可重入

如何按名称设置 django 模型字段?

Django - 来自 QuerySet 的唯一列表

对 django 的 Http Delete 请求返回 301

django过滤器超过几天?

1 个 django 应用程序中约有 20 个模型

Django:AppRegistryNotReady()

在 django 中获取空查询集的类名

django.core.servers.basehttp.FileWrapper 在 Django 1.9 中消失