如何将自定义用户信息表添加到django中的auth_user_groups?

2023-12-25

我有一个用户表“UserInfo”,并创建了两个组“admin”和“普通用户”,并授予这些组一些权限。

我根据用户的类型将用户添加到特定组,即如果用户是管理员,我会将管理员的权限授予该用户。

现在我想检查特定用户是否具有权限,并且我想将该用户添加到表 auth_user_group 中。我怎样才能做到这一点?


每个用户都有一个groupsManyToManyManager 将列出他们的组。如果要将用户添加到组中,请使用ManyToManyManager api https://docs.djangoproject.com/en/1.5/topics/db/examples/many_to_many/:

u = User.objects.get(pk=1)
g = Group.objects.get(name='admin')
u.groups.add(g)
u.save()
u.groups.remove(g)
u.save()

将用户添加到组后,他们将继承该组的所有权限。没有等效的has_perm检查用户是否在组中,但是有user_passes_test https://docs.djangoproject.com/en/1.5/topics/auth/default/#django.contrib.auth.decorators.user_passes_test您可以使用它来检查用户是否通过了任何条件。它通过调用您使用用户对象定义的任何函数来工作:

from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render

def is_admin(user):
   return user.group_set.filter(name='admin').count()

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

如何将自定义用户信息表添加到django中的auth_user_groups? 的相关文章

随机推荐

  • Automake 将两个静态库合并为一个

    我正在尝试将预构建静态库中的符号包含到我正在构建的静态库中 然后 我正在构建的静态库将在可执行文件内部使用 我遇到的问题是我的静态库中从其他静态库获取了未定义的符号 这意味着我从预构建的静态库中需要的符号没有包含在我的静态库中 使用自动工具
  • 在 LWUIT 中拨打电话

    我有一个带有电话号码的文本字段 我想要做的就是当文本字段聚焦并按下呼叫按钮时 必须暂停应用程序并且应使用以下命令拨打文本字段的电话号码平台请求 http docs oracle com javame config cldc ref impl
  • MKOverlayView 和触摸

    我的地图上有一个自定义 MKOverlayView 我想检测触摸 但是 我似乎无法让覆盖层做出响应 我希望这会是愚蠢的事情 比如忘记将 userInteractionEnabled 设置为 YES 但是可惜 没有运气 目前 我的情况如下 m
  • 在 php 中处理数学方程

    用户可以输入他们喜欢的任何数学方程 带有一个变量 x 5 1 x 2 x 3 56 13 它们以字符串形式存储在数据库中 当检索它们时 我需要用 x 代替数字并检查方程的值 我怎么能这样做呢 我正在考虑编写一个解析器来解构字符串并将它们转换
  • 在C#中打开路径中有空格的Word文档

    我有这条路 path Cash Report 30 03 2012 01 11 07 Cash Flow Report Docx 当我使用下面的代码打开文件时 它会尝试打开每个单词 所以它会尝试打开 cash doc 然后打开 Report
  • 来自 GitHub 的桌面通知

    当我选择的项目出现新推送时 如何获得桌面通知 任何 RSS 阅读器都应该这样做 转到 GitHub 上的仪表板页面 其中显示 您的新闻源 右上角是带有文本 新闻源 的橙色 rss 图标 您可以订阅该图标
  • Python 3,PIL是Pillow的别名吗?

    Windows 7 64 位上的 Python 3 5 我很困惑 如果有人安装Pillow 那么必须使用被取代 卸载的图形库的名称PIL作为它的别名 根据枕头安装说明 http pillow readthedocs io en 3 3 x
  • 从 Storyboard 中初始化的 UIViewController 调用方法 - Objective C

    我是新来的Storyboarding在 Objective C 中 我需要调用方法UIVIewController 前Storyboarding我正在初始化UIViewController in AppDelegate或者只是在那里分配指针
  • 如何将Tomcat的端口从8080改为80?

    我想执行我的网络应用程序http localhost 1 前往conftomcat安装目录下的文件夹 e g C Tomcat 6 0 conf 2 编辑以下标签server xml file
  • 是否可以仅将一个类的 MediaTypeFormatter 更改为 JSON?

    我有一个 Web api 其中全局配置配置为使用 XmlMediaTypeFormatter 我的问题是我不会使用新的控制器扩展此 Web api 而是使用 JsonMediaTypeFormatter 是否可以仅将一个 API 控制器类的
  • 如何以编程方式从共享点文档库下载文件

    在按钮单击事件或链接按钮单击时 我想从共享点文档库下载文档并将其保存到用户的本地磁盘 请帮助我 如果您有任何代码示例 请分享 输出文件的直接链接的问题是 对于某些内容类型 它可能只是在浏览器窗口中打开 如果这不是所需的结果 并且您想要强制保
  • 如何存储 Websphere MQ 消息以实现持久性?

    Websphere MQ 消息存储在数据库还是文件系统中 我可以将其配置为使用 MySQL 吗 WebSphere MQ 持久性始终是分布式平台的本地文件系统 在大型机上 可以在具有耦合设施的 Sysplex 中使用 DB2 数据库 但对于
  • Deno 顶级等待

    正在阅读homepage https deno land 新的 JS 运行时 deno 我看到了下面的代码 import serve from https deno land email protected cdn cgi l email
  • 使用 Gulp 较新版本的 Gulp Vinyl FTP 没有注意到文件中的更改,因此没有部署更新:时区问题

    解决 我构建了一个 gulp 插件来解决这个问题 https www npmjs com package gulp mtime Correction https www npmjs com package gulp mtime correc
  • 如何使用 mvcsitemapprovider 呈现特定站点地图部分

    假设我有站点地图
  • Oxite:你打算用它做什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Nginx 配置中运行 Lua?

    因此 当涉及到 Google 搜索时 可能只是我不是超级聪明或超级不幸 但我实际上找不到任何方法可以在 Nginx 配置中运行 Lua 而无需使用 LuaJIT 重新编译整个服务器 问题是 我们希望对一些变量进行微小的编辑 而不必在每次构建
  • 如何使用 pymodbus 写入 PLC 输入寄存器

    我想使用 pymodbus 写入 PLC 输入寄存器 我能够阅读它们 from pymodbus client sync import ModbusTcpClient client ModbusTcpClient 10 10 10 32 c
  • 如何为新的面板类重用现有的布局代码?

    tl dr 我想重用预定义的现有布局逻辑WPF面板 https msdn microsoft com en us library system windows controls panel 28v vs 110 29 aspx用于自定义 W
  • 如何将自定义用户信息表添加到django中的auth_user_groups?

    我有一个用户表 UserInfo 并创建了两个组 admin 和 普通用户 并授予这些组一些权限 我根据用户的类型将用户添加到特定组 即如果用户是管理员 我会将管理员的权限授予该用户 现在我想检查特定用户是否具有权限 并且我想将该用户添加到