🛠 Django Admin에서 댓글(Comment)을 블로그(Blog)와 함께 관리하는 방법

2025. 5. 9. 15:10·기술블로그-Django편

🛠 Django Admin에서 댓글(Comment)을 블로그(Blog)와 함께 관리하는 방법


🎯 목표

Django Admin에서 Blog 글을 수정할 때 관련 댓글(Comment)도 함께 관리할 수 있도록 설정하는 방법을 익힙니다.


✅ 기본 코드 구조

from django.contrib import admin
from blog.models import Blog, Comment

admin.site.register(Comment)  # 댓글을 독립적으로 등록

class CommentInline(admin.TabularInline):
    model = Comment
    fields = ['content', 'author']
    extra = 1  # 댓글 추가 입력란 1개 미리 제공

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    inlines = [CommentInline]  # 블로그 수정 시 댓글 인라인 표시

🔍 코드 분해 설명

1️⃣ admin.site.register(Comment)

  • 댓글(Comment) 모델을 Django 관리자에 단독 등록
  • /admin/blog/comment/에서 댓글을 직접 관리 가능

2️⃣ CommentInline(admin.TabularInline)

  • 블로그 글에 연결된 댓글을 테이블 형식(Tabular) 으로 표시
  • fields: 보여줄 필드 지정 (content, author)
  • extra = 1: 새 댓글 입력란 1개 기본 표시

3️⃣ inlines = [CommentInline]

  • BlogAdmin 안에 CommentInline을 등록해 블로그 수정 페이지에 댓글 리스트도 함께 표시

📸 결과 UI (예시)

  • /admin/blog/blog/1/change/ 에 접속 시:
    • 블로그 편집 화면 하단에 댓글 목록이 한눈에 표시
    • 댓글 추가/수정/삭제까지 한 화면에서 처리 가능

✅ 왜 사용하는가?

목적 효과

🔄 관계 관리 ForeignKey로 연결된 댓글을 블로그 안에서 직접 관리
⚡ 효율성 댓글 추가/수정/삭제를 블로그 편집 페이지에서 바로 처리 가능
🧩 UI 개선 관련 데이터들을 한 화면에서 직관적으로 확인 가능

💡 팁

  • TabularInline → 테이블 형식 (기본)
  • StackedInline → 세로 블록 형식으로 표시
  • 여러 개의 Inline도 동시에 등록 가능 (CommentInline, TagInline 등)

✅ 정리 요약

구성 요소 설명

CommentInline 블로그 글 안에서 댓글을 인라인 테이블로 보여줌
inlines = [...] BlogAdmin 클래스 안에서 인라인 클래스 지정
admin.site.register(Comment) 댓글 모델을 독립적으로도 관리 가능하게 함

이 설정을 활용하면 블로그 글을 수정하면서 동시에 댓글도 손쉽게 관리할 수 있어 실무 효율성이 크게 향상됩니다.

'기술블로그-Django편' 카테고리의 다른 글

📌 Django 템플릿, Form, View, URL, DB 흐름 완전 정복  (0) 2025.05.09
🧠 Django ModelForm에서 위젯 설정 완전 이해하기 (widgets, form-control)  (0) 2025.05.09
🧩 Python의 *args, **kwargs 완전 정복 + Django 실전 활용 예시  (0) 2025.05.09
🛠 Django 기본 Form(as_p)을 간접 커스터마이징하는 방법  (0) 2025.05.09
🔁 Django {% include %} 문법으로 공통 자바스크립트 재사용하기  (0) 2025.05.09
'기술블로그-Django편' 카테고리의 다른 글
  • 📌 Django 템플릿, Form, View, URL, DB 흐름 완전 정복
  • 🧠 Django ModelForm에서 위젯 설정 완전 이해하기 (widgets, form-control)
  • 🧩 Python의 *args, **kwargs 완전 정복 + Django 실전 활용 예시
  • 🛠 Django 기본 Form(as_p)을 간접 커스터마이징하는 방법
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Python (32)
      • 프로젝트 (110)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    btsdischarge
    life reflection
    lawsuitculture
    btsjungkook
    travel ban
    newpoliticalparty
    RM
    smartphonedurability
    btscomeback
    americaparty
    gpterror
    self-growth
    hotcoffeecase
    bts
    classaction
    basalcellcarcinoma
    titaniumcase
    chinanightlife
    뷔
    americanlaw
    urbantrends
    homebartrend
    youngprofessionals
    livebroadcast
    college reunions
    global politics
    trumpmuskclash
    chatgpterror
    btsreunion
    remittance
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🛠 Django Admin에서 댓글(Comment)을 블로그(Blog)와 함께 관리하는 방법
상단으로

티스토리툴바