专栏首页python3Django 开发拓展 auth 模块,

Django 开发拓展 auth 模块,

原因

使用局部钩子函数 _clean_fields() 对 username、email 字段进行验证时,未返回,具体请参考 _clean_fields() 函数源码。

def clean_username(self):
    """
    验证用户名是否被注册
    :return:
    """
    username = self.cleaned_data.get('username')
    user_obj = UserInfo.objects.filter(username=username).count()
    if user_obj:
        raise ValidationError('用户名已存在')

解决

局部钩子函数一定要记得带上返回值,全局钩子函数也是一样:

def clean_username(self):
    """
    验证用户名是否被注册
    :return:
    """
    username = self.cleaned_data.get('username')
    user_obj = UserInfo.objects.filter(username=username).count()
    if user_obj:
        raise ValidationError('用户名已存在'
    return username

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 面向过程编程

    面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。

    py3study
  • 内置函数,面向过程编程

    分层实现功能的好处:当我们需要实现web端和app端的软件,我们只要把数据处理层和接口层写好,然后实现不同的用户功能层即可,web端使用web端的用户功能层,a...

    py3study
  • python 3 if else 流程判

    py3study
  • spring boot 使用websocket

    路过君
  • SQL注入绕过字段固定值限制

    按照常规的手段,当addslashes与GBK相遇时,就是为了考察宽字节注入呗。 所以开开心心的构造URL username=-1%df' or 1=1 %23...

    yumusb
  • 面向过程编程

    面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。

    py3study
  • usermod+用户密码管理+mkpasswd

    usermod usermod是用来修改相关用户信息的指令。 1 #usermod -u username    @修改用户的uid ...

    老七Linux
  • 使用rdesktop来在Windows和Linux之间共享数据

    rdesktop是一个开源的远程桌面客户端,用来从Linux机器连接到Windows机器。它遵循RDP协议(Remote Desktop Protocol),并...

    王云峰
  • Django设置 DEBUG=False后静态文件无法加载解决

    前段时间调试一直是在Debug=True先运行的,没有什么问题。今天关闭了Debug后,出现了一个问题。就是静态文件找不到了,「img、css、js」都提示40...

    py3study
  • cgroup其他部分 IO + hugepage

    cgroup还有其他一些限制特性,如io,pid,hugetlb等,这些用处不多,参见Cgroupv1。下面介绍下与系统性能相关的io和hugepage,cgr...

    charlieroro

扫码关注云+社区

领取腾讯云代金券