django - Django - 使用自定义用户模型进行身份验证返回无
问题描述
我正在关注有关设置身份验证的教程( https://thinkster.io/tutorials/django-json-api/authentication )。我已经到了注册用户并接收令牌的地步。我可以掉进壳里做;
>>> user = Users.objects.first()
>>> user.email
>>> test@outlook.com
>>> user.password
>>> 12345678
这表明该用户存在于数据库中。但是当调用我的登录端点时;
/users/login/
验证方法返回无。
user = authenticate(username=email, password=password)
我刚刚打印了电子邮件和密码,它显示了传入的正确数据。
我还在我的模型中将我的 USERNAME_FIELD 设置为电子邮件。
USERNAME_FIELD = 'email'
我已经在我的设置中更新了我的模型
AUTH_USER_MODEL = 'aemauthentication.User'
我环顾四周,设置文件中的上述行似乎是大多数有此问题的人认可的答案。
项目的 GitHub 链接 - https://github.com/Daniel-sims/aem_1
解决方案
按照; Django 用户创建成功,但 authenticate() 返回 None
我更改了 create_user 方法以将密码作为参数;
user = self.model(username=username, email=self.normalize_email(email), password=password)
但你必须调用设置密码,所以一切正常;
user = self.model(username=username, email=self.normalize_email(email))
user.set_password(password)
推荐阅读
- javascript - 发生ajax请求时DataTables无法更改数据
- python - TypeError:在尝试应用编码器时,“str”和“method”的实例之间不支持“<”
- android - APK 安装因 NativeHelper 失败:复制本机库失败 [errorCode=-113]
- swift - 如何将 DateComponents 格式化为部分日期字符串?
- angular - Angular:Webpack 可以用来动态加载脚本吗?
- db2 - 当我将数字数据从 DB2 导出到 del 文件时,它失去了准确性
- r - 如何在 echarts4r 上将标题居中?
- mysql - mysqldump 不会将表复制到新数据库中
- java - 如何在 Java 中创建矩形二维数组?
- python - Python/Pandas:创建包含单个字符串的 1x1 数据框