Chapter 2-4 Django Admin 기능 완전 정복 요약본

2025. 4. 30. 15:17·Django

📘 Django Admin 기능 완전 정복 요약본

Django Admin 인터페이스 설정 및 사용자 정의 방법을 기반으로 한 실습 중심 요약입니다.


 


🛠️ 1. 장고 어드민 사용자 생성 과정

  • Django는 별다른 설정 없이도 /admin 경로로 강력한 어드민 페이지를 제공합니다.
  • 관리자 로그인을 위해 슈퍼유저(SuperUser) 생성 필요:
python manage.py createsuperuser
  • 입력 항목:
    • 사용자명 (필수)
    • 이메일 (선택)
    • 비밀번호 (8자 이상, 일반 단어 및 숫자만 불가)

🔐 2. 장고 패스워드 유효성 검사 설정

settings.py 파일의 아래 설정에서 관리합니다:

AUTH_PASSWORD_VALIDATORS = [
    { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator' },
    { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator' },
    { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator' },
    { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator' },
]
  • 최소 길이, 일반적인 단어 사용 여부, 숫자만 포함 여부 등을 자동 검사합니다.

🔑 3. 슈퍼유저와 장고 관리자 페이지

  • 생성된 슈퍼유저로 /admin 경로에 로그인 가능
  • 비밀번호는 DB에 해시화되어 저장됨
  • 슈퍼유저 속성 자동 부여:
    • is_staff = True
    • is_superuser = True

🧩 4. 장고 어드민 페이지 설정

북마크 모델을 어드민에 등록하는 코드 예시:

# admin.py
from django.contrib import admin
from .models import Bookmark

admin.site.register(Bookmark)

혹은 데코레이터를 이용한 커스터마이징 방식:

@admin.register(Bookmark)
class BookmarkAdmin(admin.ModelAdmin):
    pass

🌐 5. 인터페이스 한글 설정 및 북마크 추가

settings.py 설정 변경:

LANGUAGE_CODE = 'ko-kr'
  • 어드민 페이지의 모든 UI가 한글로 표시됩니다.
  • 모델에 정의된 필드는 자동으로 폼에 표시됩니다:
# models.py
class Bookmark(models.Model):
    name = models.CharField(max_length=100)
    url = models.URLField()
  • 어드민에서 입력 가능하며, URL 유효성 자동 검사됩니다.

✅ 6. URL 유효성 검사 기능

url = models.URLField()
  • 잘못된 URL 입력 시 자동 에러 발생
  • 리스트에 표시되는 객체명을 바꾸려면 __str__() 메서드 정의 필요: 
def __str__(self):
    return self.name

🛠️ 7. Django Admin 고급 기능 정리

7.1 수정/삭제 기능

  • 리스트 항목 클릭 시 수정 가능
  • 삭제는 두 단계 확인 창 제공

7.2 Admin 클래스 커스터마이징 admin.py

from django.contrib import admin
from .models import Bookmark  # ← Bookmark 모델 import 필요

class BookmarkAdmin(admin.ModelAdmin):
    list_display = ['name', 'url'] # 리스트로 정리
    list_display_links = ['name', 'url']
    list_filter = ['name', 'url']

admin.site.register(Bookmark, BookmarkAdmin)
# 이런식으로도 구현 가능 

@admin.register(Bookmark)
class BookmarkAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'url')
    list_display_links = ('name', 'url')
    list_filter = ('name', 'url')
    
# admin.site.register(Bookmark, BookmarkAdmin) 이 코드는 없어지고 @로 설정
  • list_display로 출력할 필드 지정
  • list_filter로 우측 필터 영역 활성화
  • list_display_links로 클릭 가능한 항목 설정

7.3 필터 기능 활용

  • 우측 필터 영역에 값 클릭 → 해당 값으로만 필터링된 리스트 출력

7.4 공식 문서 참고

  • https://docs.djangoproject.com/en/stable/ref/contrib/admin/
  • 구글 검색 키워드: django admin docs

📌 최종 정리

  • 슈퍼유저 생성 → /admin 접속 → 로그인 후 데이터 관리 시작
  • 모델 등록 시 어드민 자동 연동
  • str() 메서드로 객체 표현 커스터마이징
  • Admin 클래스 확장으로 출력 필드, 필터 등 유연하게 조절 가능
  • LANGUAGE_CODE 변경으로 한글 UI 적용 가능

✅ Django Admin은 별도 프론트엔드 없이도 빠르게 백오피스를 구성할 수 있는 강력한 기능입니다!

'Django' 카테고리의 다른 글

Chapter 2-7 Django ORM 완벽 가이드  (0) 2025.04.30
Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리  (0) 2025.04.30
Chapter 2-3 Django 모델 & 마이그레이션 완전 정복  (0) 2025.04.30
Chapter 2-2 Django Views Tutorial  (0) 2025.04.30
Chapter 2-1 Django 앱 생성 및 구조 설명 가이드  (0) 2025.04.30
'Django' 카테고리의 다른 글
  • Chapter 2-7 Django ORM 완벽 가이드
  • Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리
  • Chapter 2-3 Django 모델 & 마이그레이션 완전 정복
  • Chapter 2-2 Django Views Tutorial
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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 2-4 Django Admin 기능 완전 정복 요약본
상단으로

티스토리툴바