📗 Django 


관리자 페이지 (Admin Site)

우리가 운영을 하다 보면..

  • 실제 서비스를 운영하다 보면 서비스를 관리하는 페이지가 필요하다.
  • 모든 관리자에게 DB를 열어주거나, 매번 SQL을 입력해서 보거나 수정할 수는 없기 때문이다.

 

Django의 Admin Site

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

 

 

이미 만들어져 있던 admin/ url로 들어가 보면,

 

 

사이트에 들어가진다

 

admin 계정 생성

python manage.py createsuperuser
  • 최소 is_staff 권한이 필요하다.

 

admin에서 관리할 모델 등록

  • 관리자 페이지에서 사용할 모델은 직접 등록해 주는 것이 필요
  • 각 앱의 admin.py에서 설정 가능
더보기
articles
# articles/admin.py
from django.contrib import admin
from .models import Article

admin.site.register(Article)

 

 

articles 모델이 등록된 걸 볼 수 있다

 

 

ADD ARTICLE 버튼을 누르면

 

 

기본적인 CRUD를 모두 포함하고 있다.

 

커스텀하기

원하는 게시물만 검색해 볼 수 있는 기능과 작성일을 기준으로 정렬해서 볼 수 있게 해 보자

@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",)

 

보기 수정, 검색, 필터 등 다양한 기능을 추가하였다.

🐾Recent posts