본문 바로가기
Programming/Django

🧩 Django 관리자에서 Post 모델 꾸미기 - PostAdmin 설정하기

by Mandy's 2025. 7. 23.

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) 코드를 작성해야 합니다!