IT/WEB

[Django] 튜토리얼 ④ : Django 관리자

개발자 두더지 2020. 9. 8. 22:01
728x90

 계속해서 Django 공식 튜토리얼 + 참고자료의 포스팅을 이어나가도록 하겠습니다.

 

관리자 생성하기


 장고는 모델에 대한 관리용 인터페이스를 모두 자동으로 생성한다. 이 인터페이스는 사이트 방문자가 아닌 사이트 관리자용이다.

 우선 관리 사이트에 로그인 할 수 있는 슈퍼 유저를 생성하자. cmd창에서 프로젝트로 디렉토리로 이동 후 아래의 명령어를 실행시키면 슈퍼 유저 생성 커맨드 라인으로 넘어간다.   

python manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password(again):

 모든 입력은 원하는대로 하면 된다. 단, 사용자 이름은 소문자+공백 없이 입력해야한다. 참고로 비밀번호 입력시 화면에 몇 자리의 문자인지 나타나지 않지만 입력되고 있으므로 그대로 입력하고 엔터를 누르면 된다. 너무 쉬운 비밀번호를 입력하는 경우 "Bypass password validation and create user anyway? [y/N]: " 경고와 같은 질문이 커맨드 라인에 나타나게 되는데 y를 입력하면 문제 없이 생성가능하다. 

 

개발 서버 구동


 장고 관리자 사이트는 기본적으로 활성화되어 있다. 개발 서버를 키지 않았다면 cmd창에서 프로젝트 디렉토리로 이동 후 "python manage.py runserver"를 실행시키자. 전 포스팅에도 언급하였지만 기본 포트번호가 8000이므로 포트번호 충돌시 "python mange.py runserver 원하는 포트 번호"로 서버를 구동시키면 된다.

 이제 웹 브라우저를 열고 이전의 로컬 도메인의 끝에 "/admin/"을 입력하면(http://127.0.0.1:포트번호/admin/) 관리자  로그인 화면을 볼 수 있다. 

1

 위에서 작성한 슈퍼유저의 username과 password을 입력하여 로그인하자. 로그인하면 아래와 같은 장고 관리 인덱스 페이지를 확인할 수 있다.

 편집 가능한 그룹과 사용자와 같은 몇 가지의 컨텐츠를 확인할 수 있는데 이 모두는 django.contrib.auth모듈에서 제공되는 인증 프레임워크이다. 

 

관리 사이트에서 poll app을 변경가능하도록 만들기


만들었던 poll app이 관리 인덱스 페이지에서 볼 수 있도록 하기 위해서는 admin에게 Question 객체가 admin 인터페이스를 가지고 있다는 것을 말해줄 필요가 있다. 그러기 위해서 polls/admin.py 파일을 열어 다음과 같이 편집하자.

# polls/admin.py

from django.contrib import admin

from .models import Question

admin.site.register(Question)

 이후 웹 브라우저를 새로고침하면 아래와 같이 Polls 앱이 추가된 것을 확인할 수 있다.

 

관리 기능 탐색하기


위의 웹 브라우저에서 Question 항목을 클릭하면, 변경할 수 있는 질문 list 페이지가 보일 것이다. 이 페이지에서는 데이터베이스에 저장된 모든 질문들을 보여주며, 선택하여 변경할 수 있다. 

 우리가 만들었던 질문인 What's up? 을클릭해보면 아래와 같은 창이 나타나며 자유롭게 수정할 수 있다.

여기서 알아두어야 하는 것들은 다음과 같다.

■ 이 서식은 Question 모델에서 자동으로 생성되었습니다.

■ 모델의 각 필드 유형들은 (DateTimeField, CharField) 적절한 HTML 입력 위젯으로 표현된다. 

■ 각각의 DateTimeField는 JavaScript로 작성된 단축 기능과 연결된다. 날짜는 "오늘(Today)" 버튼과 달력 팝업에서 입력할 수 있으며, 시간은 "지금(Now)"버튼과 입력 시간을 제공하는 팝업을 통해서도 입력할 수 있다.

페이지 아래의 버튼 옵션은 다음과 같다.

■ 저장(Save) : 이 유형의 객체에 대한 변경사항을 저장하고, 변경된 목록 페이지를 보여준다.

■ 저장 및 편집 계속하기 (Save and continue editing) : 이 객체에 대한 변경사항을 저장하고, 현재 편집창을 갱신한다.

■ 저장 및 다른 이름으로 추가 (Save and add another) : 변경사항을 저장하고, 이 유형의 객체에 대한 비어있는 새로운 입력창을 불러온다.

■ 삭제(Delete) : 삭제를 확인하는 페이지를 띄운다.


참고자료

wayhome25.github.io/django/2017/03/04/django-06-poll-project-4-admin/

tutorial.djangogirls.org/ko/django_admin/

 

 

728x90