설표의 장고




장고) 관리자 계정을 생성하는 방법





( 수정됨)


환경

OS : Windows 10
python : 3.10.11
Django : 5.0.7

읽기 전에

이 글은 이전에 작성한 글의 환경에서 작동합니다.
예제를 따라할 예정이라면 동일한 환경을 갖춘 다음에 따라하는 것을 권장합니다.

장고에서 관리자 계정을 만드는 방법

장고에서 관리자 계정을 만드는 방법은 2가지가 있습니다.
하나는 관리자 권한을 보유한 계정을 생성하는 것이고,
다른 하나는 이미 생성된 계정에 관리자 권한을 부여하는 것입니다.

관리자 계정을 생성하는 방법

"python manage.py createsuperuser" 명령을 통해 관리자 계정을 생성할 수 있습니다.
비밀번호의 경우 환경에 따라 입력된 값이 있더라도 콘솔에 표시되지 않을 수 있습니다.

(django) C:\django\mysite>python manage.py createsuperuser
로그인 이메일: aaa@aaa.com
닉네임: superuser
Password:
Password (again):
Superuser created successfully.

(django) C:\django\mysite>

로그인해보기

이전에 base.html을 작성할 때, 관리자 계정인 경우 "[관리자]" 문구를 노출하게 설정해두었습니다.
생성한 관리자으로 로그인해보면 관리자 계정인 것을 확인할 수 있습니다.

장고 관리자 계정 생성 후 로그인

관리자 권한을 부여하는 방법

"python manage.py shell"을 통해 Member model을 import한 다음, 관리자 권한을 부여할 object를 가져와 "is_staff"의 값을 "True"로 선언한 다음 저장하는 것으로 관리자 권한을 부여할 수 있습니다.
반대로 is_staff 값을 "False"로 선언하고 저장하면 관리자 계정에서 일반 계정으로 바뀝니다.

(django) C:\django\mysite>python manage.py shell
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from member.models import Member
>>> a = Member.objects.get(username='asdf')
>>> a
<Member: asdf>
>>> a.is_staff
False
>>> a.is_staff = True
>>> a.save()
>>> b = Member.objects.get(email='aaa@aaa.com')
>>> b
<Member: superuser>
>>> b.is_staff
True
>>> b.is_staff = False
>>> b.save()
>>> ^Z

now exiting InteractiveConsole...

(django) C:\django\mysite>


이 글의 댓글 기능은 일부러 막아놓았습니다. 궁금한 내용이 있다면 게시판을 이용해주세요!


공감 : 0