我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?

是否可以将普通用户变为管理员,然后删除管理员状态?


当前回答

如果你使用的是自定义用户模型

(venv)your_prj $ ./manage.py shell
>>> from customusers.models import CustomUser
>>> CustomUser.objects.filter(is_superuser=True)
>>> user = CustomUser.objects.get(email="somesuper@sys.com")
>>> user.set_password('@NewPwd')
>>> user.save()
>>> exit()

其他回答

获取用户名(以及大部分信息)的另一种方法是直接访问数据库并从表中读取信息。

Python manage.py createsuperuser将创建另一个超级用户,您将能够登录到admin并记住您的用户名。 是的,为什么不呢?

要赋予普通用户权限,请使用python manage.py shell打开shell并尝试:

from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()

你可以试试这个:

1.在没有控制台的情况下修改超级用户密码

python manage.py changepassword <username>

2.通过控制台修改超级用户密码

如果你使用的是自定义用户模型

(venv)your_prj $ ./manage.py shell
>>> from customusers.models import CustomUser
>>> CustomUser.objects.filter(is_superuser=True)
>>> user = CustomUser.objects.get(email="somesuper@sys.com")
>>> user.set_password('@NewPwd')
>>> user.save()
>>> exit()

如果您忘记了您的管理员,那么您需要通过使用创建新用户

python manage.py createsuperuser <username>

对于密码,有CLI命令changepassword用于django修改用户密码

python manage.py changepassword <username>

OR

django-admin changepassword <username>

或者在Django env中运行此代码

from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()