在 Django 中强制使用小写用户名

2024-03-14

目前,在 django.contrib.auth 中,可以有两个用户名为“john”和“John”的用户。我怎样才能防止这种情况发生。

最直接的方法是在 contrib.auth.models 中添加一个干净的方法,并在保存之前将其转换为小写,但我不想编辑 contrib.auth 包。

Thanks.


收听pre_save https://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.pre_save为了Users模型,然后在那里进行检查。侵入性最小且最便携的方式。

下面是一个示例(改编自用户配置文件示例):

def username_check(sender, instance, **kwargs):
    if User.objects.filter(username=instance.username.lower()).count():
       raise ValidationError('Duplicate username')

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

在 Django 中强制使用小写用户名 的相关文章

随机推荐

  • 输入组和表单组之间的区别

    css类之间的使用有什么区别input group and form group在引导程序中 输入组是扩展的表单控件 使用输入组 您可以轻松地将文本或按钮添加到基于文本的输入中 例如 您可以根据需要添加 符号 作为 Twitter 用户名或
  • 将符合 ISO 8601 的字符串转换为 java.util.Date

    我正在尝试转换ISO 8601 http en wikipedia org wiki ISO 8601格式化字符串为java util Date 我找到了模式yyyy MM dd T HH mm ssZ如果与区域设置一起使用 则符合 ISO
  • 无法有趣地计算 R 中光栅堆栈上的像素级回归

    我正在处理栅格 我有一个带有 7n 层的 RasterStack 我想使用下面的公式计算像素级回归 我试图这样做raster calc 但我的功能失败并显示消息 lm fit x y 偏移量 偏移量 奇异 ok 奇异 ok 中的错误 0 非
  • 在单独的线程上运行 Log4Net 附加程序

    目前 我有自己的日志系统 其中日志本质上是一个队列 有一个单独的线程侦听该队列并执行所有实际的写入操作 系统处理大量日志消息 文件在几分钟内很容易超过 10 MB 大小 因此在调用线程中进行实际日志记录是不可行的 如果 log4net 已经
  • 在隐藏标签中播放声音

    我正在尝试在网页上设置声音 我找到了这段代码 这是工作代码 当div是可见的 但我想隐藏起来并工作 在这种情况下它不起作用 因为它被隐藏了style属性 如何让它不可见并同时播放声音 div style display none div 我
  • 在 CSS 中 .a.b 与 .a .b 不同吗?

    在我的 css 文件中是 a b不同于 a b 这是一个简单的问题 但它总是让我烦恼 我尝试过 但我想我会将其发布在这里 以防作为参考有用 在我的 css 文件中 a b 与 a b 不同吗 Yes a b是一个或多个具有两个类的元素 di
  • MySQL 连接器 ODBC odbc.ini“选项”标志值

    首先 感谢您花时间和精力阅读这个问题 我试图更好地理解 odbc ini 文件 在 Unix Linux 系统上 的 Option 属性中指定的值是如何确定的 在 MySQL 文档中搜索 Option 标志可以采用的值之后 我不确定如何得出
  • 基于标准 PHP 查询字符串的路由

    如您所知 Zend Framework v1 10 使用基于斜杠分隔的参数的路由 例如 server controllerName actionName param1 value1 param2 value2 问题是 如何强制 Zend F
  • Angular 5 - 复制到剪贴板

    我正在尝试实现一个图标 单击该图标会将变量保存到用户的剪贴板 我目前已经尝试了几个库 但没有一个能够做到这一点 如何在 Angular 5 中正确地将变量复制到用户的剪贴板 解决方案一 复制任何文本 HTML
  • 使用 PHP 动态创建对象,无需变量赋值

    我只是好奇在 PHP 中是否可以动态创建对象 我以为我以前见过它完成的 当然 我可以将它分配给一个变量 但只是想知道这是否可能 new className gt someMethod 当然 这会引发语法错误 所以显然它不是那样做的 如果可能
  • 关于如何在 Nginx 位置块部分使用正则表达式的指南?

    Nginx 正则表达式位置语法 正则表达式可以与 Nginx 位置块部分一起使用 这是通过 PCRE 引擎实现的 由于没有完整记录 该功能到底支持什么 Nginx 位置 Nginx 位置块部分有一个搜索顺序 一个修饰符 一个隐式匹配类型以及
  • AWS S3 中预签名 URL 的安全性如何?

    我计划将用户重定向到 S3 中存储的敏感资源的预签名 URL 这些是在检查用户权限后生成的 并且具有激进的超时 30 秒 然而 我担心的是 我的客户端计算机上存在的某些恶意软件是否有可能捕获 URL 并在 URL 的过期时间内仍然下载文件
  • 钥匙串数据存储在哪里?

    关于iOS中钥匙串的几点 安全保存用户名和密码 如果多个应用程序共享相同的代码签名条款和捆绑种子 ID 则它们可以共享数据 我的问题是 钥匙串数据存储在哪里 绝对在应用程序沙箱之外 我们可以处理它们吗 iOS 应用程序中钥匙串还有哪些用途
  • 如何在不使用域白名单的情况下隐藏Android PhoneGap中的地址栏?

    谁能告诉我如何隐藏 Android PhoneGap 中的地址栏 我正在尝试捕获图像 但图像功能在 PhoneGap 中不起作用 在浏览器中同样可以工作 所以 我想隐藏地址酒吧 是的 用这个小小的 Javascript 就可以做到这一点
  • 调试时静态变量初始值设定项的运行时评估中的奇怪现象

    当我从 Visual Studio 内部启动并附加调试器 F5 时 我的应用程序运行良好 但是当我启动应用程序而不附加调试器 Ctrl F5 或启动 exe 文件 时 我总是得到一个StackOverflowException幸运的是 它被
  • 你可以为ios设置带有FCM通知的thread-id吗

    Firebase FCM 消息支持tag对于 Android 这会导致新通知用具有相同标签的旧通知替换前一个通知 有没有办法在ios上做同样的事情 This answer https stackoverflow com a 43220782
  • 更改 form_for Rails 3.1 生成的 html 表单 id

    我有这个表格 生成下一个代码 html
  • AngularJS 不清理由 ng-include 创建的子作用域

    我有以下用例 我提供一个对话服务 根据上下文放置不同的内容 在服务方法中 我手动编译一个 dom 元素并使用它来使用 jquery ui 显示对话框 代码如下 var view jQuery div span span div var co
  • 将 awk 命令存储在 bash 脚本的变量中

    我试图store an awk 命令 命令 而不是结果 在变量中 我的目标是稍后在脚本中使用该变量 并具有不同的输入 例如 cmd awk something if END cmd input 我尝试将命令存储为 如示例中所示 也可以bac
  • 在 Django 中强制使用小写用户名

    目前 在 django contrib auth 中 可以有两个用户名为 john 和 John 的用户 我怎样才能防止这种情况发生 最直接的方法是在 contrib auth models 中添加一个干净的方法 并在保存之前将其转换为小写