본문 바로가기
웹디자인 (HTML,JS)

Django Admin 기본구성 및 어드민 화면 커스터마이징

by 날으는물고기 2023. 12. 26.

Django Admin 기본구성 및 어드민 화면 커스터마이징

Django는 Python으로 작성된 웹 프레임워크로, 관리자 도구를 포함하고 있어요. 이 도구는 Django 애플리케이션의 데이터를 쉽게 관리하고 조작할 수 있도록 돕습니다. Django 관리자는 오픈 소스이며, 개발자들이 데이터 모델을 쉽게 관리하고 변경할 수 있는 강력한 도구입니다.

Django administration

Django 관리자를 설정하고 사용하는 것은 다음과 같은 단계를 따릅니다.

  1. Django 설치
    Django가 설치되어 있지 않다면, 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 설치하세요.
    pip install Django
  2. Django 프로젝트 생성
    Django 프로젝트를 생성합니다.여기서 "myproject"는 프로젝트의 이름입니다.
    django-admin startproject myproject
  3. 앱 생성
    Django 앱을 생성합니다.여기서 "myapp"은 앱의 이름입니다.
    cd myproject python manage.py startapp myapp
  4. 모델 정의
    앱 내의 models.py 파일에서 데이터 모델을 정의합니다.
    # myapp/models.py from django.db import models class MyModel(models.Model): name = models.CharField(max_length=100) description = models.TextField() def __str__(self): return self.name
  5. 마이그레이션 및 데이터베이스 업데이트
    모델 변경을 적용하기 위해 마이그레이션을 생성하고 데이터베이스를 업데이트합니다.
    python manage.py makemigrations python manage.py migrate
  6. 슈퍼유저 생성
    Django 관리자에 로그인할 수 있는 슈퍼유저를 생성합니다.이 명령을 실행하면 관리자 계정을 만들 수 있습니다.
    python manage.py createsuperuser
  7. 관리자 URL 활성화
    myproject/urls.py 파일에서 관리자 URL을 활성화합니다.
    # myproject/urls.py from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
  8. 서버 실행
    개발 서버를 실행하여 확인합니다.이제 브라우저에서 http://127.0.0.1:8000/admin/로 이동하여 방금 생성한 슈퍼유저 계정으로 로그인하면 Django 관리자를 사용할 수 있습니다.
    python manage.py runserver

Django의 관리자 화면을 원하는 형태로 꾸미기 위해서 커스터마이징하는 방법은 여러 가지가 있습니다.

다음은 단계별로 설명된 간단한 방법입니다.

1. 장고 프로젝트 및 앱 설정

먼저, Django 프로젝트를 생성하고 앱을 추가합니다.

django-admin startproject myproject
cd myproject
python manage.py startapp myapp

myapp은 나중에 사용할 앱의 이름입니다.

2. 모델 정의

myapp/models.py 파일에서 모델을 정의합니다.

from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=255)
    # 다른 필드 추가

3. 마이그레이션 및 관리자 등록

마이그레이션을 수행하고 모델을 관리자에 등록합니다.

python manage.py makemigrations
python manage.py migrate

myapp/admin.py 파일에 다음 코드를 추가합니다.

from django.contrib import admin
from .models import MyModel

admin.site.register(MyModel)

4. 관리자 사용자 생성

python manage.py createsuperuser

5. 템플릿 폴더 생성

프로젝트 폴더 내에 templates/admin 폴더를 생성합니다.

6. 템플릿 파일 생성

templates/admin/base_site.html 파일을 만들고 다음과 같이 내용을 추가합니다.

{% extends "admin/base_site.html" %}

{% block extrastyle %}
    {{ block.super }}
    <link rel="stylesheet" type="text/css" href="{% static 'admin/my_custom.css' %}">
{% endblock %}

7. CSS 파일 생성

static/admin/my_custom.css 파일을 만들고 원하는 스타일을 추가합니다.

8. 커스텀 뷰 및 템플릿

myapp/views.py 파일에 커스텀 뷰를 정의하고, 템플릿 파일을 작성합니다.

from django.shortcuts import render

def custom_admin_view(request):
    # 원하는 로직 추가
    return render(request, 'admin/my_custom_view.html')

templates/admin/my_custom_view.html 파일을 만들고 내용을 추가합니다.

{% extends "admin/base_site.html" %}

{% block content %}
    <!-- 내용 추가 -->
{% endblock %}

9. URL 패턴 추가

myproject/urls.py 파일에 URL 패턴을 추가합니다.

from django.contrib import admin
from django.urls import path
from myapp.views import custom_admin_view

urlpatterns = [
    path('admin/', admin.site.urls),
    path('admin/custom/', custom_admin_view, name='custom_admin_view'),
]

10. 관리자 메뉴에 링크 추가

templates/admin/base_site.html 파일을 열고 원하는 위치에 링크를 추가합니다.

<li><a href="{% url 'admin:custom_admin_view' %}">Custom View</a></li>

11. 실행

서버를 실행하고 http://127.0.0.1:8000/admin/에 접속하여 변경된 관리자 화면을 확인합니다.

python manage.py runserver

 

Django 관리자 화면을 세부적으로 커스터마이징을 통해서, 프로젝트에 따라 더 많은 기능을 추가할 수 있습니다.

728x90

댓글