Teshi's Think Log

Django Admin 사용자 제작 페이지 만들기

posted by teshi at 2021-05-31 15:07
categories : Python

django를 이용하여 이것저것 만들다보니...

제일 많이 활용하게 되는 것이 Admin 관련 기능이었다. 단순히 데이터를 넣고 빼고, 결과를 출력하게 만들 때에는 다른 페이지 다 필요없이 Admin 모듈만 활용을 잘해도 굉장히 편리하게 구현할 수 있다.

이렇게 Admin 모듈을 잘 활용하던 중에 Admin 페이지에서 그래프를 보여줄 수 있는 페이지를 추가하고 싶었다.

예를 들어

관리자 페이지
   ㄴ 데이터 관리 앱
       ㄴ 데이터 관리 페이지
       ㄴ 그래프 페이지

요렇게 데이터 관리 앱이라는 것, 아래에 그래프 페이지를 넣고 싶었던 것이었다.

기본적으로 관리자 페이지의 틀은 그대로 따라가는게 좋기 때문에 "change_list 템플릿"을 활용하고 싶었다.

그래서 먼저 더미 모델을 아래와 같이 선언하였다.

from django.db import models

.
.
.
생략
.
.
.

class Graph(model.Model):
    class Meta:
        verbose_name = "그래프"
        verbose_name_plural = "그래프"
        app_label = "[현재 앱 라벨]"

그래프라는 모델을 만들었고, 다 비워두고 Meta 클래스만 선언하여 이름과 앱 라벨을 넣어주었다.

그리고 난 후, 마이그레이션을 실행해주고 admin.py에 아래와 같이 선언하였다.

from django.contrib import admin
from [앱이름].models import Graph

class graphAdmin(admin.ModelAdmin):
    model = Graph
    change_list_template = 'graph/change_list.html'

.
.
.
생략
.
.
.

admin.site.register(Graph, graphAdmin)

그리고 난 후, templates 폴더에 graph/change_list.html 파일을 아래와 같이 작성하였다.

{% extends "admin/change_list.html" %}
{% block content %}

OK it works

{% endblock %}

그리고 apache 재시작!

그 결과 위와 같이 OK It works 메시지와 함께 성공하였다.