계속해서 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/) 관리자 로그인 화면을 볼 수 있다.
위에서 작성한 슈퍼유저의 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/
'IT > WEB' 카테고리의 다른 글
[Django] 튜토리얼 ⑥ : 템플릿과 URL 시스템 그리고 제너릭 뷰 (0) | 2020.09.10 |
---|---|
[Django] 튜토리얼 ⑤ : View추가 및 에러 일으키기 (0) | 2020.09.09 |
[Django] 튜토리얼 ③ : Django 모델 만들기 (0) | 2020.09.08 |
[Django] 튜토리얼 ② : Django 설치부터 PostgreSQL DB 연동까지 (0) | 2020.09.08 |
[Django] 튜토리얼 ① : Django란 (2) | 2020.09.08 |