django에는 django admin이라는 굉장히 편리한 기능이 있다. 지금까지 우리가 쉘에서 해온 작업들을 django admin을 사용하면 훨씬 편하게 수행할 수 있다.
1. 슈퍼유저
django admin을 사용하기 위해 슈퍼유저를 생성할 필요가 있다. createsuperuser 명령어로 슈퍼유저를 생성한다.
python manage.py createsuperuser
필자의 경우 이미 만들어둔 슈퍼유저가 있기에 같은이름을 사용하려고 하니 이미 존재하는 이름이라며 에러가 발생한다. 다른 이름을 입력한 뒤 이메일, 패스워드를 설정해준다. 패스워드가 충분히 강력한지 검사하여 너무 취약한 패스워드를 사용할 경우 위와 같이 경고메시지가 뜨지만 무시하고 진행할 수도 있다.
삭제의 경우 django shell 에서 django.contrib.auth.models 의 User 모델에서 유저명과 슈퍼유저 여부를 조건으로 삭제할 슈퍼유저 데이터를 가져온 뒤 delete()를 실행해주면 된다. 이전에 Question, Answer 데이터를 삭제할 때와 같은 방식이다.
2. django admin 접속
이제 로컬 서버를 구동한 뒤 http://localhost:8000/admin/ 에 접속한다.
python manage.py runserver
접속하면 위와 같이 로그인 화면을 볼 수 있다. 방금 생성한 슈퍼유저 계정으로 로그인을 해보자
로그인을 하면 위와 같이 사용자와 그룹의 데이터를 추가, 변경, 조회 가능한 것을 볼 수있다.
3. django admin 을 사용한 모델 관리
여기서부터가 django admin의 진면목이다. pybo\admin.py 를 수정하여 django admin에 더 많을 기능을 추가할 수 있다.
pybo\admin.py 를 위와 같이 수정해준다. pybo\models.py에 정의해둔 Question과 Answer 클래스를 import 한 뒤 admin.stie에 등록한다는 의미이다. 수정한 뒤 다시한번 admin 페이지에 접속해보자
방금 전까지는 그룹, 사용자 모델만을 관리할 수 있던 admin 페이지에서 이제는 PYBO의 모델들도 관리할 수 있게되었다.
추가를 클릭하면 GUI 환경에서 편리하게 데이터를 생성할 수도 있다.
이번에는 데이터를 검색하기 위해 admin.py를 한번 더 수정해본다.
pybo\admin.py 를 위와 같이 수정한 뒤 다시한번 관리자 페이지에 접속한다.
Question의 데이터 리스트 위에 검색창이 추가된 것을 볼 수 있다. 'subject' 항목으로 검색할 수 있도록 하였기 때문에 질문의 제목으로 검색이 가능하다.
시험삼아 Model로 검색해보니 Model이 포함된 질문 하나만이 필터링 되는 것을 볼 수 있다.
django admin은 이 밖에도 편리한 기능들을 무수히 많이 제공하니 잘 알아둘 필요가 있다. django admin에 대한 자세한 내용은 공식문서(https://docs.djangoproject.com/en/3.0/ref/contrib/admin/)를 참고하도록 하자.
'개인 프로젝트 > Django-mysite' 카테고리의 다른 글
#8 URL과 네임스페이스 (0) | 2021.09.21 |
---|---|
#7 템플릿(Template) (0) | 2021.08.16 |
#5 django 의 기본 요소 - Model 사용 (0) | 2021.08.11 |
#4 django 의 기본 요소 - Model 작성과 Migration (0) | 2021.08.11 |
#3 django 의 기본 요소 - URL, View (0) | 2021.08.11 |