创建超级用户后无法登录 django 管理员帐户
Posted
技术标签:
【中文标题】创建超级用户后无法登录 django 管理员帐户【英文标题】:Can't login to django admin account after creating super user 【发布时间】:2020-07-13 17:28:52 【问题描述】:我在 django 中创建了一个项目,我想做的第一件事是为管理员帐户创建一个超级用户,然后继续 django 项目,但问题是在使用创建超级用户帐户之后
python manage.py createsuperuser
并填写超级用户创建的信息
超级用户创建成功。
但是当我尝试使用这些凭据登录时,它说
请输入正确的员工帐户用户名和密码。请注意,这两个字段都可能区分大小写。
我不确定是否还有其他设置需要检查或我做错了什么。
请给我建议解决方案。
【问题讨论】:
【参考方案1】:您在运行python manage.py createsuperuser
之前运行过python manage.py migrate
吗?
在createsuperuser
过程中,你需要用户名和密码,你不需要其他任何东西,即电子邮件。
你应该先这样做,然后运行python manage.py runserver
最后,导航到http://127.0.0.1:8000/admin/
您真的不需要做任何其他事情。如果您遇到其他错误,请发布。
【讨论】:
谢谢,我使用的电子邮件字段应该是用户名。现在可以了。【参考方案2】:进入python shell:
python manage.py shell
在 python 控制台中,运行以下命令:
from django.contrib.auth.models import User
user = User.objects.get(username='your_username') # enter inside the quotes the username you entered when you ran python manage.py createsuperuser
user.set_password('new_password') # change the password
user.is_superuser = True
user.is_staff = True
user.save()
exit()
然后尝试使用您设置的凭据再次登录。
【讨论】:
【参考方案3】:我也遇到过类似的问题,但是按照以下方法效果很好。
def create_superuser(self, username, email, password=None, **extra_fields):
user = self.create_user(username, email, password=password, is_staff=True, **extra_fields)
user.is_active = True
user.save(using=self._db)
return
【讨论】:
以上是关于创建超级用户后无法登录 django 管理员帐户的主要内容,如果未能解决你的问题,请参考以下文章
Django:创建电子邮件登录字段而不是用户名后,超级用户和用户无法登录到管理员和用户页面
无法使用 Eclipse IDE 在 Python-Django 上创建超级用户帐户?