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)
이렇게 등록한 뒤 살펴보면 조금 전 등록한 모델이 보임.
- 커스텀 하기
- 이렇게 모델을 추가했습니다. 그러나 만약 게시글의 수가 많아진다면 관리하기가 힘듬
- 원하는 게시물만 검색해볼 수 있거나 작성일을 기준으로 정렬해서 볼 수 있게하기 등 커스터마이징
# 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 |