장고

장고의 관리자(Admin) 활용하기

장고 관리자란?

장고의 관리자(Admin)는 Django 애플리케이션의 데이터를 관리할 수 있는 웹 기반 인터페이스입니다. 이를 통해 사이트의 데이터를 편리하게 수정, 추가, 삭제할 수 있으며, 특히 데이터베이스에 접근할 필요 없이 관리자 페이지에서 관리 작업을 할 수 있습니다. 기본적으로 제공되는 관리자 페이지는 매우 강력하고 사용하기 쉬운 기능을 제공하여 비개발자도 쉽게 데이터 관리를 할 수 있도록 돕습니다. 관리자 인터페이스는 django.contrib.admin 패키지를 통해 활성화됩니다.

관리자 사이트 활성화하기

장고에서 관리자를 사용하려면, INSTALLED_APPS에 django.contrib.admin을 추가하고, urls.py에 admin.site.urls를 연결해야 합니다. 기본적으로 프로젝트에 설치하면 관리자 페이지가 활성화됩니다. 관리자 페이지에 접근하려면, python manage.py createsuperuser 명령어로 관리자 계정을 생성하고, http://127.0.0.1:8000/admin/에서 로그인하여 접근할 수 있습니다. 로그인 후에는 데이터베이스에 저장된 데이터를 쉽게 관리할 수 있습니다.

모델을 관리자에 등록하기

관리자 페이지에서 특정 모델을 관리하려면, 해당 모델을 관리자에 등록해야 합니다. 이를 위해 admin.py 파일에서 admin.site.register()를 사용합니다. 예를 들어, from .models import Post 후 admin.site.register(Post)로 Post 모델을 등록하면 관리자 페이지에서 Post 데이터를 추가, 수정, 삭제할 수 있게 됩니다. 이 작업은 모델을 관리자 페이지에서 사용할 수 있게 만드는 첫 번째 단계입니다.

관리자 인터페이스 커스터마이징하기

장고 관리자 페이지는 기본적으로 제공되는 기능 외에도 다양한 방식으로 커스터마이징할 수 있습니다. 예를 들어, 모델에 대해 ModelAdmin 클래스를 생성하고 이를 사용하여 필드 순서를 변경하거나, 리스트에서 보여줄 항목을 정의할 수 있습니다. list_display, search_fields, list_filter와 같은 속성을 사용하면 관리자 페이지에서 데이터를 더 효율적으로 관리할 수 있습니다. 이렇게 커스터마이징하면 관리자의 사용자 경험을 개선할 수 있습니다.

인라인 모델(admin.StackedInline, admin.TabularInline) 사용하기

장고 관리자에서는 여러 모델 간의 관계를 관리하기 위해 인라인 모델을 사용할 수 있습니다. admin.StackedInline이나 admin.TabularInline을 사용하면, 부모 모델 내에서 자식 모델을 한 페이지에서 함께 관리할 수 있습니다. 예를 들어, Author와 Book 모델이 관계를 맺고 있다면, Book 모델을 Author 모델의 관리 페이지 내에서 인라인으로 표시하여 두 모델을 쉽게 관리할 수 있습니다. 이를 통해 관계형 데이터를 효율적으로 관리할 수 있습니다.