Django Shell을 사용하여 Django Admin 비밀번호 재설정하는 방법

발행: (2025년 12월 10일 오후 01:42 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Django 관리자 계정의 비밀번호를 잊어버리면 답답할 수 있지만, Django 셸을 사용하면 빠르고 간단하게 재설정할 수 있습니다. 이 방법은 관리자 인터페이스에 더 이상 접근할 수 없을 때도 작동하며 추가 패키지가 필요하지 않습니다.

단계별 가이드

Django 셸 열기

manage.py 파일이 있는 프로젝트 디렉터리에서 다음을 실행합니다:

python manage.py shell

이 명령은 Django 프로젝트가 로드된 대화형 Python 셸을 시작합니다.

비밀번호 재설정

셸 안에서 다음을 실행합니다:

from django.contrib.auth.models import User

# 'admin'을 실제 관리자 계정의 사용자 이름으로 교체하세요
user = User.objects.get(username='admin')

# 새 비밀번호를 설정합니다 ('new_secure_password'를 원하는 비밀번호로 교체)
user.set_password('new_secure_password')

# 변경 사항 저장
user.save()

중요 참고 사항

  • 올바른 사용자 이름을 사용하세요(보통 admin이지만, 커스텀 슈퍼유저를 만든 경우 다를 수 있습니다).
  • set_password()는 비밀번호를 자동으로 해시해 주므로 user.password = 'plain_text'와 같이 평문 비밀번호를 직접 할당하지 마세요. 이는 비밀번호가 해시되지 않은 상태로 저장됩니다.

셸 종료

비밀번호를 업데이트한 후 다음을 입력합니다:

exit()

또는 Ctrl+D(Unix 계열) 혹은 Ctrl+ZEnter(Windows)를 누릅니다.

이제 새 비밀번호와 사용자 이름을 사용해 Django 관리자 인터페이스(/admin/)에 로그인할 수 있습니다.

보너스: 관리자뿐 아니라 모든 사용자 비밀번호 재설정

같은 방법을 데이터베이스에 있는 어떤 사용자에게도 적용할 수 있습니다—사용자 이름만 바꾸면 됩니다:

user = User.objects.get(username='john_doe')
user.set_password('another_secure_password')
user.save()

문제 해결 팁

“User matching query does not exist”

사용자 이름을 다시 확인하세요(대소문자를 구분합니다). 모든 사용자를 나열하려면 다음을 실행합니다:

User.objects.all()

커스텀 User 모델 사용

프로젝트에서 커스텀 사용자 모델(예: CustomUser)을 사용하는 경우 User 대신 해당 모델을 사용합니다:

from myapp.models import CustomUser
user = CustomUser.objects.get(username='admin')

결론

몇 줄의 코드만으로도 몇 초 만에 Django 관리자 계정에 다시 접근할 수 있습니다. 이 기술은 프로덕션 서버에서나 이메일 기반 비밀번호 재설정이 설정되지 않은 경우에 특히 유용합니다.

Back to Blog

관련 글

더 보기 »

Part 2: 첫 번째 Django 프로젝트 설정

이것은 “Learn Backend Development by Building a Social Media App” 시리즈의 파트 2입니다. 다시 오신 것을 환영합니다! 이전 파트에서는 백엔드가 실제로 무엇인지 배웠습니다.

Django 6

번역할 텍스트를 제공해 주세요.