Django의 관리자 페이지는 ModelAdmin 클래스를 통해 다양한 설정이 가능합니다.
이번 글에서는 Post 모델을 더 직관적으로 관리할 수 있도록 PostAdmin 클래스를 구성해보겠습니다.
🛠 PostAdmin 코드
class PostAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title", )}
list_filter = ("author", "date", )
list_display = ("title", "author", )
1️⃣ prepopulated_fields
prepopulated_fields = {"slug": ("title", )}
- slug 필드가 자동으로 title 값을 기반으로 채워집니다.
- 관리자에서 새 글을 입력할 때, 제목을 쓰면 slug가 자동으로 생기는 편리한 기능입니다.
- 예: 제목이 "Django 시작하기" → slug는 자동으로 "django-시작하기"로 생성됨
2️⃣ list_filter
list_filter = ("author", "date", )
- 관리자 목록 화면 오른쪽에 필터 사이드바가 생깁니다.
- author별, date별로 게시글을 빠르게 분류할 수 있어요.
- 특히 게시물이 많아질수록 필터 기능은 필수입니다!
3️⃣ list_display
list_display = ("title", "author", )
- 관리자 목록 페이지에 보여질 열(Column)을 지정합니다.
- 기본적으로 객체의 __str__()만 표시되는데, title과 author를 함께 보여주면 훨씬 직관적이죠.
🧪 실제 적용 예시
관리자 페이지 /admin/blog/post/로 접속하면 다음과 같이 표시됩니다:
제목 (title) 작성자 (author)
| Django 시작하기 | 민수 |
| 블로그 프로젝트 개발기 | 민주 |
📌 마무리
이렇게 PostAdmin을 정의하면, 글 관리가 훨씬 효율적이고 편리해집니다.
앞으로 search_fields, ordering, readonly_fields 등 다양한 기능도 함께 적용해볼 수 있어요.
💡 참고: 이 클래스를 적용하려면 반드시 admin.site.register(Post, PostAdmin) 코드를 작성해야 합니다!
'Programming > Django' 카테고리의 다른 글
| [Django] Form을 통해 사용자 리뷰 저장하기 (feat. Model 연결) (2) | 2025.07.24 |
|---|---|
| [Django] ManyToManyField 역참조 출력 오류 해결: post.tags 관련 에러 정리 (4) | 2025.07.23 |
| 🛠 Django 관리자(admin) 페이지에 모델 등록하기 (0) | 2025.07.23 |
| 📘 Django ORM 이해하기 – 역참조란 무엇인가? (1) | 2025.07.23 |
| 📌 [Django 오류] QuerySet을 딕셔너리처럼 다루면 생기는 문제 (TypeError) (0) | 2025.07.23 |