📘 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 1-10 Django로 구구단 페이지 만들기 (0) | 2025.04.29 |
Chapter 1-9 Django 템플릿 구성 파일 개발 & 방안 (0) | 2025.04.29 |
Chapter 1-7 Django - 가짜 데이터베이스로 웹 페이지 만들기 튜토리얼 (0) | 2025.04.29 |