创建超级用户后无法登录Django管理账户

3
我在Django中创建了一个项目,第一件事就是为管理帐户创建超级用户,然后继续进行Django项目。但问题是,在使用 "python manage.py createsuperuser" 创建超级用户帐户并填写信息后,虽然成功创建了超级用户,但在尝试使用这些凭据登录时会提示“请为工作人员帐户输入正确的用户名和密码。请注意,两个字段可能区分大小写。” 我不确定是否需要检查其他设置或者我做错了什么,请给出解决方案建议。
3个回答

3

进入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()

然后使用您设置的凭据再次尝试登录。


1
你在运行python manage.py createsuperuser之前是否运行了python manage.py migrate? 在createsuperuser过程中,你需要输入用户名和密码,不需要其他任何信息,例如邮箱。
你应该先执行以上步骤,然后运行python manage.py runserver 最后,访问http://127.0.0.1:8000/admin/ 实际上,你不需要做其他任何事情。如果出现其他错误,请将其发布。

1
谢谢,我之前使用的是电子邮件字段,而应该使用用户名字段。现在它可以正常工作了。 - vikram

0

我也遇到了类似的问题,但是按照以下方法操作后,问题得到了解决。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接