Answers:
python manage.py changepassword <user_name>
manage.py createsuperuser
创建第二个超级用户,然后查看“用户”列表以查找原始超级用户。然后以原始用户身份登录并删除新的超级用户。
python manage.py createsuperuser
将创建另一个超级用户,您将能够登录admin并修改您的用户名。要赋予普通用户特权,请使用打开一个shell python manage.py shell
并尝试:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
您可以尝试通过控制台:
python manage.py shell
然后在shell中使用以下脚本
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
将列出您系统上的所有超级用户。如果您从列表中识别出您的用户名:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
然后您设置了一个新密码(:
User.objects.filter(is_superuser=True)
pip install django-extensions
,将其添加到installed apps
并运行./manage.py shell_plus
。该User
课程将可用,您可以password-change
。
您可以使用createsuperuser
命令创建新的超级用户。
检索用户名和密码的最佳方法之一是查看和更新它们。用户模型提供了一种完美的方法。
打印用户列表对于Python 2用户,请使用命令“打印用户”。对于Python 3用户,请使用命令“ print(users)”。第一个用户通常是admin。
选择您想要更改其密码的用户,例如
"user = users[0]"
设定密码
user.set_password('name_of_the_new_password_for_user_selected')
保存新密码
"user.save()"
启动服务器并使用用户名和更新的密码登录。
manage.py changepassword
在于,您不受限于可以使用或不能使用的密码-不再类似于用户名废话。(这是在我的开发环境中。我不主张使用弱密码。您应该始终在产品中使用强密码。)
有两种方法可以做到这一点:
该changepassword
管理命令:
(env) $ python manage.py changepassword <username>
或者使用django-admin shell,如下所示(扩展了一些答案,但适用于任何扩展的User模型):
(env) $ python manage.py shell
这应该显示如下的shell命令提示符:
Python 3.7.2 (default, Mar 27 2019, 08:44:46)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
然后,您需要以下内容:
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username='admin@hug.com')
>>> user.set_password('new password')
>>> user.save()
>>> exit()
注意:为什么我用这个答案回答了这个问题?
如前所述,因为User = get_user_model()
它将适用于您自己的定制User
模型。使用from django.contrib.auth.models import User
then User.objects.get(username='username')
可能会引发以下错误:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
如果您忘记了创建管理员用户,请先使用createsuperuser
on命令建立一个用户,manage.py
然后更改密码。
如果您不知道此处创建的用户名。您可以按照上面@FallenAngel所述获得用户。
python manage.py shell
from django.contrib.auth.models import User
usrs = User.objects.filter(is_superuser=True)
#identify the user
your_user = usrs.filter(username="yourusername")[0]
#youruser = usrs.get(username="yourusername")
#then set the password
但是,如果您创建了独立的用户模型。一个简单的情况是,您想使用电子邮件作为用户名而不是默认用户名。在这种情况下,您的用户模型位于诸如your_accounts_app.models之类的地方,则上述解决方案将无法工作。在这种情况下,您可以改用get_user_model方法
from django.contrib.auth import get_user_model
super_users = get_user_model().objects.filter(is_superuser=True)
#proceed to get identify your user
# and set their user password
如果您忘记了管理员,则需要使用创建新用户
python manage.py createsuperuser <username>
对于密码,有CLI命令changepassword
让django更改用户密码
python manage.py changepassword <username>
要么
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()
使用命令“ python manage.py createsuperuser”创建一个新的超级用户。以新的超级用户身份登录。点击“用户”链接。然后单击您要删除的用户。单击表单页面末尾的删除用户。
注意-上述过程将更改由该特定用户完成的活动日志。