본문 바로가기
Research/Django

[Django] 점프 투 장고 튜토리얼 - 02-3. 장고 관리자(Admin)

by RIEM 2021. 11. 11.

Django 점프 투 장고 정리

작성일 : 2021-11-09

문서버전 : 1.0

 

개요

이 문서는 점프 투 장고 사이트의 장고 튜토리얼 학습 내용을 정리한 내용입니다.

레퍼런스

점프 투 장고 https://wikidocs.net/72242

 

2-3. 장고 관리자

점프투장고 저자는 장고 관리자(Admin)의 admin.py 파일에 코드 몇 줄 추가할 때 마법 같은 기능들이 펼쳐지는 것을 보고 놀랐다고 한다. 그만큼 강력한 기능을 가졌다고 할 수 있다.

슈퍼유저

장고 관리자 사용을 위해 장고 관리자 화면에 접속할 수 있는 슈퍼유저(superuser)를 먼저 생성하자.


> 슈퍼유저 생성하기

Python manage.py createsuperuser

(mysite) c:\projects\mysite>python manage.py createsuperuser
사용자 이름 (leave blank to use 'pahke'): admin
이메일 주소: admin@mysite.com
Password:
Password (again):
비밀번호가 너무 짧습니다. 최소 8 문자를 포함해야 합니다.
비밀번호가 너무 일상적인 단어입니다.
비밀번호가 전부 숫자로 되어 있습니다.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

(mysite) c:\projects\mysite>

 

슈퍼유저는 다음과 같은 정보로 생성된다.

항목
사용자 이름 admin
이메일 주소 admin@mysite.com
Password hello123!



장고 관리자 화면

로컬 서버 구동 후 http://localhost:8000/admin/ 페이지에 접속해보자. 

 

슈퍼유저 admin 계정으로 로그인해보자.

사이트 관리 화면이 나타났다. 상단에서는 사이트 보기(localhost:8000 주소), 비밀번호 변경, 로그아웃 메뉴가 있다. 그 아래에는 사이트 관리 메뉴들이 있는데 그룹과 사용자들의 인증 및 권한을 제어할 수 있다. 우측에는 최근 활동 이력을 나타내는 공간도 있다.

 

모델 관리

장고 관리자의 재미있는 기능에 대해 알아보자. 우리는 이미 Question 모델을 만들었는데, Question 모델을 관리자에 등록하면 어떤 일이 발생하는지 확인해보자. 

> ../projects/mysite/pybo/admin.py

from django.contrib import admin
from .models import Question

admin.site.register(Question)

 

웹사이트를 새로고침하니 Pybo 앱에 Question이 등록된 것을 확인할 수 있다. 이제 장고 관리자 화면에서 Question 모델을 관리할 수 있다. 신규 질문 생성, 조회, 수정, 삭제도 가능하다. 

 


> 질문 추가하기

Questions 우측 추가 버튼을 누르면 아래와 같이 질문 추가 페이지로 넘어간다. 여기서 질문을 작성하고 저장 버튼을 눌러 질문을 등록해주자.

 

 

Answer 모델도 동일한 방법으로 등록하면 장고 관리자에서 사용할 수 있다.

 

구조도는 아래와 같다.

 

모델 검색

관리자 화면에서 제목(subject)으로 질문을 검색해보자.

> ../projects/mysite/pybo/admin.py

from django.contrib import admin
from .models import Question

class QuestionAdmin(admin.ModelAdmin):
    search_fields = ['subject']

admin.site.register(Question, QuestionAdmin)

 

QuestionAdmin 클래스는 Question 모델에 세부 기능을 추가할 수 있도록 한다. 제목 검색을 위해 search_fields 속성에 ‘subject’를 추가했다. 이렇게 수정하면 장고 화면은 아래와 같이 변한다.

장고가 마법같다는 저자의 말이 공감이 가기 시작했다. 

 

장고로 검색해보니 ‘장고로 만든 사이트가 있나요?’ 질문 1개가 검색되었다.

 

그외 무수히 많은 admin 기능이 있으니 아래 주소를 참조하면 좋다.

https://docs.djangoproject.com/en/3.0/ref/contrib/admin/

 

댓글