django - 在 DJANGO(REST) 中登录时删除用户名字段
问题描述
我最近想在我的 Django REST API 中删除注册所需的用户名字段。所以我在我的中添加了以下几行settings.py
:
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
注册时不再需要用户名。但是当用户尝试登录时,它仍然需要用户名,否则我会得到一个{'non_field_errors': ['Unable to log in with provided credentials.']}
响应。我还注意到,当用户仅使用电子邮件地址注册时,django 会获取电子邮件地址中 @ 符号之前的所有字符,并将其作为用户名保存在数据库中。
我的问题是:
我怎样才能在登录时删除用户名。因此,唯一需要登录的是电子邮件和密码。我试图在不制作自定义用户模型的情况下实现这一目标。
分别在注册和登录时的当前情况示例:
#Registration
registartion_info ={"email":"achie@gmail.com", "password1":"password","password2":"password"}
registration_url = 'http://127.0.0.1:8000/users/registration/'
response = requests.post(url,json= registartion_info)
#Login
login_info ={"username":"achie","email":"achie@gmail.com", "password":"password"}
login_url = 'http://127.0.0.1:8000/users/login/'
response = requests.post(url,json= login_info)
我希望分别如何注册和登录的示例:
#Registration
registartion_info ={"email":"achie@gmail.com", "password1":"password","password1":"password"}
registration_url = 'http://127.0.0.1:8000/users/registration/'
response = requests.post(url,json= registartion_info)
#Login
login_info ={"email":"achie@gmail.com", "password":"password"}
login_url = 'http://127.0.0.1:8000/users/login/'
response = requests.post(url,json= login_info)
解决方案
推荐阅读
- assembly - TSR服务程序汇编
- python - 在 Python 中处理 json 文件时出错
- firebase - 使用 Flutter 在一次往返中从 firestore 获取 10 多个文档
- scala - 如何手动构建实例化类的 Scala 运行时 AST?
- python - Python pip 安装 PythonMagick (Pycharm)
- json - XML 到 JSON Dataweave 转换问题转换属性值
- python - 如何设置docker但在新容器准备好之前保持容器存活
- swift - 使用 QuickLook 在 ios12 中未显示 pdf 的编辑选项
- ruby-on-rails - Rails:使用 Nginx Web 服务器找不到 404 页面
- javascript - 如何使用递归在nodejs中展平json文件