답변:
python manage.py changepassword <user_name>
manage.py createsuperuser
두 번째 수퍼 유저를 만든 다음 사용자 목록을보고 원래 사용자를 찾을 수 있습니다. 그런 다음 원래 계정으로 로그인하고 새 수퍼 유저를 삭제하십시오.
python manage.py createsuperuser
다른 수퍼 유저를 만들면 관리자에 로그인하여 사용자 이름을 기억할 수 있습니다.일반 사용자 권한을 부여하려면을 사용하여 쉘을 열고 다음 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
그런 다음 쉘에서 다음 스크립트를 사용하십시오.
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
시스템의 모든 수퍼 유저를 표시합니다. 목록에서 yur 사용자 이름을 인식하는 경우 :
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 사용자의 경우 "print users"명령을 사용하십시오. Python 3 사용자의 경우 "print (users)"명령을 사용하십시오. 첫 번째 사용자는 일반적으로 관리자입니다.
비밀번호를 변경하려는 사용자를 선택하십시오. 예 :
"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 셸 을 사용하여 (몇 가지 답변으로 확장되지만 모든 확장 사용자 모델에서 작동) :
(env) $ python manage.py 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()
NB 왜이 질문에이 질문에 답했습니까?
언급했듯이 User = get_user_model()
사용자 정의 User
모델에서 작동하기 때문 입니다. from django.contrib.auth.models import User
그런 다음 사용 User.objects.get(username='username')
하면 다음 오류가 발생할 수 있습니다.
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
admin 사용자 생성을 잊어 버린 경우 먼저 createsuperuser
명령 on으로 빌드 한 manage.py
다음 비밀번호를 변경하십시오.
이것을 시도 할 수 있습니다 :
1. 콘솔없이 수퍼 유저 비밀번호 변경
python manage.py changepassword <username>
2. 콘솔을 통해 수퍼 유저 비밀번호 변경
여기에 생성 된 사용자 이름을 모르는 경우 위의 @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>
그리고 비밀번호에는 changepassword
django가 사용자 비밀번호를 변경하는 CLI 명령 이 있습니다.
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()
주목할만한 또 다른 사항은 사용자의 상태 is_staff
를 활성 으로 설정하는 것 입니다. 적어도 그것이 저에게 효과적입니다. 자세한 내용 superuser
은 사람들이 위에서 설명한대로 다른 것을 만들었습니다 . 그런 다음 데이터베이스 테이블로 이동하여 auth_user
해당 사용자 이름을 검색하여 is_staff
플래그가 설정되어 있는지 확인하십시오 1
. 마침내 admin
사이트 에 로그인 할 수있었습니다 .