在 Django 中,如何检查用户是否属于某个组?

2023-12-03

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

在我的代码中,我想检查用户是否属于该组。我怎么做?


Your User对象链接到Group对象通过一个多对多关系。

您可以因此应用filter方法用户组.

因此,要检查给定用户是否属于某个组(例如“成员”),只需执行以下操作:

def is_member(user):
    return user.groups.filter(name='Member').exists()

如果要检查给定用户是否属于多个给定组,请使用__in像这样的运算符:

def is_in_multiple_groups(user):
    return user.groups.filter(name__in=['group1', 'group2']).exists()

请注意,这些函数可以与@用户通行证测试装饰器来管理对视图的访问:

from django.contrib.auth.decorators import login_required, user_passes_test

@login_required
@user_passes_test(is_member) # or @user_passes_test(is_in_multiple_groups)
def myview(request):
    # Do your processing

对于基于类的视图,您可以使用UserPassesTestMixin with test_func method:

from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin

class MyView(LoginRequiredMixin, UserPassesTestMixin, View):

    login_url = '/login/'
    redirect_field_name = 'redirect_to'

    def test_func(self):
        return is_member(self.request.user)

希望这有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Django 中,如何检查用户是否属于某个组? 的相关文章

随机推荐

  • 将函数结果分配给表变量

    SQL Server 2000 2005 函数获取表名和字段名作为参数 并返回函数内动态查询的结果 结果应分配给Table将在存储过程中进一步使用的变量 如何实现这一目标 我收到错误 只能从函数内执行函数和扩展存储过程 Declare Da
  • PHP 处理错误

    将此代码与 simplehtmldom 脚本一起使用 http simplehtmldom sourceforge net manual htm function file get html dom new simple html dom
  • jgit 相当于“git merge-base --fork-pointbranchAbranchB”

    git merge base fork pointbranchAbranch 的 jgit 等效代码是什么 我尝试了下面的代码 但没有得到正确的答案 我用它来寻找分支起源 foreach branch git merge base fork
  • OS X 故事板:如何以编程方式显示窗口?

    我正在创建一个 OS X 状态栏应用程序 我正在努力实现以下目标 应用程序启动不可见 带有菜单栏项目 单击菜单栏项显示主窗口 停用时 窗口被隐藏 因此 我尝试在单击菜单项时以编程方式显示主窗口 但没有成功 我的主窗口有 停用时隐藏 检查过
  • 查询 msdb.dbo.sysssispackages XML 中的特定值

    我正在尝试查询msdb dbo sysssispackages对于主动维护计划 我无法理解如何查询packagedata柱子 我在 SO 上发现了一些其他与 XML 相关的 SQL 问题 但到目前为止似乎没有什么完全符合我正在寻找的内容 X
  • 如何查找元胞数组中最后一个非空元素的索引

    我初始化了一个很长的元胞数组 向量 train labels cell 16218 1 这些将使用来自 50 个不同文件夹的文件进行填充 为了确保文件在正确的位置建立索引 我需要最后写入的元胞数组的索引 例如读取一个文件夹后 索引在trai
  • 如何选择和排序不在 Group By SQL 语句中的列 - Oracle

    我有以下声明 SELECT IMPORTID Region RefObligor SUM NOTIONAL AS SUM NOTIONAL From Positions Where ID importID GROUP BY IMPORTID
  • Google App Engine:如何将大文件写入 Google 云存储

    我正在尝试将大文件从 Google App Engine Blobstore 保存到 Google Cloud Storage 以方便备份 它对于小文件 My code PATH gs backupbucket for df in Docu
  • (全功能)长轮询服务器如何抽象地工作

    由于您使用的是事件循环而不是线程 那么实际的服务器看起来如何 我知道它使用事件循环 但是如何分离请求 如何防止服务器运行速度极慢 我认为它是无线程的 一次只能推送一件事 某种伪代码会很棒 原谅我的无知 当然 如果有地方用非基本的方式解释它
  • 我的 java App Engine 托管 VM 版本在 2015 年 4 月 14 日更新后未部署

    我的 java App Engine 托管虚拟机构建不再使用以下方式进行部署gcloud preview app deploy target myapp SNAPSHOT我明白了 ERROR Found no valid App Engin
  • PyCharm 运行速度很慢

    我是以下的忠实粉丝JetBrains 的 PyCharm但我确实遇到了一些我想也许我会在这里问的问题 它意外挂起 并且这种情况经常发生 总的来说 它对我来说有点慢 我希望获得一些关于如何提高 IDE 性能的提示 通常 当我打开项目时 PyC
  • MongoDB 分片集群中的文档计数错误

    我有一个使用 MongoDB 4 2 的包含三个分片的集群 我有一个集合 用户 before可以检查分片有600000个文档 mongos gt db users count 600000 接下来 我使用常用 命令对其进行分片 第一个数据库
  • Flutter:使用 Dart 检查设备可用存储空间

    如何检查设备存储是否可以在 Flutter 中执行而无需本地执行 我想知道设备是否有足够的存储空间来下载图像 如何实现这一目标 有一个包叫磁盘空间这使您能够准确地获得您正在寻找的信息 你可以这样使用它 import package disk
  • bat 文件替换文本文件中的字符串

    这个问题在 stackoverflow 上被问了很多 但我似乎无法让它发挥作用 任何提示表示赞赏 这是一个文本文件 扩展名 mpl 其中包含需要删除的违规文本 plotsetup ps plotoutput plotfile eps plo
  • 如何确定RNN中神经元的数量?

    我是 RNN 新手 并试图理解它们 由于它需要输入序列 那么神经元的数量应该与序列的大小相同 对吧 那么 如果我们有 10 个时间步长 因此有 10 个不同的输入 那么我们应该有 10 个神经元 对吗 另外 神经元的数量会随着时间的增加而增
  • 如何在 python 中将图像块传输到特定图像的区域内?

    我正在制作一个游戏 我需要将我的对象复制到特定图像的区域内 我不想需要我的表面来传输这些图像 是否可以 我使用的是pygame 如果您能更好地解释您正在尝试做什么 那么将来会更好 因为它会给您更多答案 根据我的理解 你想将一个图像传输到另一
  • 将通过HTTP上传到ASP.NET的文件进一步上传到C#中的FTP服务器

    上传表格
  • jquery ajax 切断 IE 中的响应

    我正在使用jquery 表单插件它使用 jquery ajax 来完成大部分工作 我们有jquery 1 7 2 我们使用它通过 ajax 向服务器发送表单 并返回指示成功的值或返回带有验证错误的表单 我让它在 Firefox 和 Chro
  • Java BigDecimal 三角方法

    我正在开发一个数学解析器 它能够像这样评估字符串 5 b sqrt c 2 我正在使用 ANTLR 进行解析并取得了良好的进展 现在我迷上了Java课程BigDecimal并想 嘿 为什么不考虑这里的精度呢 我的问题是 Java API 没
  • 在 Django 中,如何检查用户是否属于某个组?

    我在 Django 的管理站点中创建了一个自定义组 在我的代码中 我想检查用户是否属于该组 我怎么做 Your User对象链接到Group对象通过一个多对多关系 您可以因此应用filter方法用户组 因此 要检查给定用户是否属于某个组 例