Django

Admin

zhelddustmq 2024. 8. 19. 14:53

01. 관리자 페이지 (Admin Site)

01. 관리자 페이지 (Admin Site)

Django의 Admin Site

  • Django는 기본적으로 관리자 사이트를 제공하고 있음
  • Django Framework를 선택하는 이유가 되기도하는 강력한 장점 중 하나
  • 직접 record를 조회, 생성, 수정, 삭제할 수 있는 모든 기능을 제공
  • 이외에도 각종 권한 부여를 해서 제한하거나, 페이지 자체를 커스텀 하는 것도 가능
path("admin/", admin.site.urls),

이렇게 정의하고 admin경로에 들어가보면

프로젝트 생성시부터 존재하던 그 페이지

직접 사용해보기

admin 계정 생성(이미 생성했겠지만...)

python manage.py createsuperuser

최소 is_staff 권한이 필요합니다. → DB에서 해당 값을 1로 바꿔주면 됨

 

admin에서 관리할 모델 등록

  • 관리자 페이지에서 사용할 모델은 직접 등록해주는것이 필요
  • 각 앱의 admin.py에서 설정 가능

articles

  • 기본 등록하기
# articles/admin.py
from django.contrib import admin
from .models import Article

admin.site.register(Article)

이렇게 등록한 뒤 살펴보면 조금 전 등록한 모델이 보임.

 

등록한 모델은 관리자 페이지에서 접근 가능
기본적인 CRUD를 모두 포함

  • 커스텀 하기
    • 이렇게 모델을 추가했습니다. 그러나 만약 게시글의 수가 많아진다면 관리하기가 힘듬
    • 원하는 게시물만 검색해볼 수 있거나 작성일을 기준으로 정렬해서 볼 수 있게하기 등 커스터마이징
# articles/admin.py

from django.contrib import admin
from .models import Article
# Register your models here.


@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ("title", "created_at")  # 보여주고 싶은 메뉴를 추가
    search_fields = ("title", "content")  # 검색창 생성 및 검색하는 요소 설정
    list_filter = ("created_at",)  # 필터링 드롭박스 기능 제공
    date_hierarchy = "created_at"  # 날짜별로 조회 가능
    ordering = ("-created_at",)  # 정렬 순서 결정

    # 이외에 타이틀은 변경못하게 읽기만 가능하게 하는 read_only 같은 것들을 커스터마이징 해서 쓸 수 있음.

보기 수정, 검색, 필터 등 다양한 기능을 간단히 추가 할 수 있음

  • 이 밖에도 거의 모든 부분에 대해 커스텀이 가능
    • 예를 들어 CSS와 Javascript를 사용하여 원하는 대로 커스텀해서 사용하는 것도 가능
    → 공식문서 참조

'Django' 카테고리의 다른 글

Custom UserModel(플젝 시작시 유의)  (0) 2024.08.20
Model Relationship (1:N)  (0) 2024.08.19
Django Static, Media(runserver)  (1) 2024.08.19
회원기능 구현하기  (0) 2024.08.19
Auth  (0) 2024.08.17