创建超级用户后无法登录 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:创建电子邮件登录字段而不是用户名后,超级用户和用户无法登录到管理员和用户页面

在django中创建帐户后无法登录

成功创建超级用户后无法登录 Heroku 管理面板

无法使用 Eclipse IDE 在 Python-Django 上创建超级用户帐户?

Django-nonrel 无法以超级用户身份登录到 localhost 管理站点

Django-admin