이제 Django 튜토리얼 시리즈의 마지막 단계로 Django 관리자(Admin) 패널을 다루겠습니다. Django는 강력한 관리자 페이지를 기본적으로 제공하여, 별도의 코드 작성 없이 웹 애플리케이션의 데이터를 쉽게 관리할 수 있습니다. 이번 포스팅에서는 Django 관리자 패널을 설정하고, 이를 통해 데이터베이스 항목을 생성, 수정, 삭제하는 방법을 알아보겠습니다.
1. 관리자 패널 설정하기
Django 프로젝트를 생성하면 기본적으로 관리자 페이지가 포함되어 있습니다. http://127.0.0.1:8000/admin/으로 접속하면 관리자 페이지에 접속할 수 있습니다. 하지만 관리자 페이지에 접근하려면 슈퍼유저(Superuser) 계정이 필요합니다.
1.1 슈퍼유저 생성
슈퍼유저 계정을 생성하려면 터미널에서 다음 명령어를 사용하여 관리자 계정을 만듭니다.
python manage.py createsuperuser
명령어를 실행하면, 사용자 이름, 이메일 주소, 비밀번호를 입력하는 프롬프트가 표시됩니다. 입력을 완료하면 슈퍼유저가 생성됩니다.
1.2 관리자 패널에 접속하기
슈퍼유저가 생성되면, http://127.0.0.1:8000/admin/으로 접속하여 생성한 계정으로 로그인할 수 있습니다. 로그인 후에는 Django의 관리자 패널을 통해 데이터베이스 항목을 관리할 수 있습니다.
2. 모델 관리자에 등록하기
관리자 패널에서 관리하려는 데이터 모델을 등록해야 합니다. 이를 위해 admin.py 파일을 수정하여 원하는 모델을 관리자 패널에 추가할 수 있습니다. 예를 들어, 블로그 애플리케이션의 Post 모델을 관리자에 등록하려면 다음과 같이 작성합니다.
from django.contrib import admin
from .models import Post
admin.site.register(Post)
이 코드를 추가하면, Post 모델이 관리자 페이지에서 표시되고, 이를 통해 데이터베이스 항목을 생성, 수정, 삭제할 수 있습니다.
3. 관리자 패널에서 데이터 관리하기
관리자 패널을 통해 데이터베이스 항목을 관리하는 방법을 알아보겠습니다. 이제 관리자 패널에서 모델을 등록했으므로, 해당 데이터를 관리할 수 있습니다.
3.1 데이터 생성
관리자 패널의 Post 모델 항목으로 이동하면, 상단에 "Add Post" 버튼이 표시됩니다. 이를 클릭하여 새로운 게시글을 생성할 수 있습니다. 폼에 필요한 정보를 입력하고 저장하면, 데이터베이스에 게시글이 추가됩니다.
3.2 데이터 수정
데이터 목록에서 수정하고자 하는 항목을 클릭하면 수정 페이지로 이동합니다. 여기서 데이터를 변경한 후 "Save" 버튼을 클릭하면 데이터베이스가 업데이트됩니다.
3.3 데이터 삭제
목록에서 삭제하려는 항목을 선택하고 "Delete" 버튼을 클릭하면 데이터를 삭제할 수 있습니다.
4. 관리자 페이지 커스터마이징
Django 관리자 페이지는 기본적으로 편리하게 사용 가능하지만, 추가적인 커스터마이징도 가능합니다. 예를 들어, 리스트에서 표시되는 필드나 필터링 옵션을 추가할 수 있습니다.
4.1 목록에 표시할 필드 지정
관리자 페이지에서 게시글 목록에 표시할 필드를 지정할 수 있습니다. 이를 위해 admin.py 파일을 수정합니다.
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'created_at', 'published_at')
admin.site.register(Post, PostAdmin)
이 코드를 추가하면, Post 모델의 목록에서 제목, 생성일, 게시일이 표시됩니다.
4.2 검색 기능 추가
관리자 페이지에서 특정 항목을 검색할 수 있는 기능을 추가하려면 search_fields 옵션을 사용합니다.
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'created_at', 'published_at')
search_fields = ('title', 'content')
이 코드를 추가하면, 제목과 본문을 기준으로 검색할 수 있는 검색창이 관리자 페이지에 표시됩니다.
4.3 필터링 옵션 추가
데이터를 특정 기준으로 필터링할 수 있도록 하려면 list_filter 옵션을 사용할 수 있습니다.
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'created_at', 'published_at')
search_fields = ('title', 'content')
list_filter = ('created_at', 'published_at')
이 코드를 추가하면, 생성일과 게시일을 기준으로 데이터 필터링이 가능해집니다.
결론
이번 포스팅에서는 Django의 관리자(Admin) 패널을 설정하고 사용하는 방법에 대해 배웠습니다. 관리자 패널을 통해 데이터베이스 항목을 쉽게 관리할 수 있으며, 필요에 따라 다양한 커스터마이징도 가능합니다. Django의 강력한 관리자 시스템은 개발 중 뿐만 아니라 실제 운영 환경에서도 효율적으로 데이터베이스를 관리할 수 있는 도구입니다.
이로써 Django 튜토리얼 시리즈를 마무리합니다. 이번 시리즈를 통해 Django의 핵심 개념을 익히고, 웹 애플리케이션을 개발할 수 있는 능력을 갖추셨기를 바랍니다. 앞으로도 Django와 관련된 다양한 기능을 탐구하고 발전시켜나가시길 바랍니다!