1 분 소요

[Django]모델 필드 및 Admin 패널 활용

image-20241007015233582

Django는 강력한 ORM(Object Relational Mapping) 시스템을 제공하여 데이터베이스 작업을 쉽게 처리할 수 있습니다.

이번 포스팅에서는 Django에서 제공하는 다양한 모델 필드와 Django Admin을 통해 관리 인터페이스를 설정하는 방법에 대해 알아보겠습니다.

1. 모델 필드 설명

Django의 models.py 파일에서 다양한 데이터베이스 필드를 정의할 수 있습니다. 예시로, 아래의 QuestionChoice 모델을 사용해 설명하겠습니다.

polls/models.py

 from django.db import models
 
 class Question(models.Model):
     question_text = models.CharField(max_length=200)  # 질문 내용
     pub_date = models.DateTimeField('date published')  # 게시 날짜
 
     def __str__(self):
         return f'제목: {self.question_text}, 날짜: {self.pub_date}'
 
 
 class Choice(models.Model):
     question = models.ForeignKey(Question, on_delete=models.CASCADE)  # 질문과의 관계 설정
     choice_text = models.CharField(max_length=200)  # 선택지 내용
     votes = models.IntegerField(default=0)  # 투표 수

주요 모델 필드

  • CharField: 최대 길이를 지정할 수 있는 문자열 필드입니다.
  • DateTimeField: 날짜와 시간을 저장하는 필드로, pub_date는 게시 날짜를 나타냅니다.
  • ForeignKey: 다른 모델과의 관계를 정의합니다. 여기서는 ChoiceQuestion과 연결되어 있으며, on_delete=models.CASCADE는 질문이 삭제되면 관련 선택지도 함께 삭제되도록 설정합니다.
  • IntegerField: 정수 값을 저장하는 필드입니다. votes는 기본값이 0인 정수 필드로, 선택지에 대한 투표 수를 저장합니다.

2. 마이그레이션 롤백

모델을 수정하거나 잘못된 마이그레이션을 적용했을 때, 이전 버전으로 돌아가는 방법을 알아봅시다. Django에서는 migrate 명령어를 사용해 특정 마이그레이션 버전으로 롤백할 수 있습니다.

마이그레이션 롤백 명령어

$ python manage.py migrate polls 0001  # 0001 버전으로 롤백

이 명령어를 통해 polls 앱의 마이그레이션을 첫 번째 버전으로 롤백할 수 있습니다.


3. Django Admin 계정 생성

Django는 기본적으로 강력한 관리 인터페이스를 제공하는 Admin 패널을 지원합니다. 먼저, 관리자 계정을 생성해야 합니다.

관리자 계정 생성

$ python manage.py createsuperuser

명령어를 실행하면 사용자 이름, 이메일, 비밀번호를 입력하라는 메시지가 뜹니다. 이 정보를 입력하면 Django Admin에 로그인할 수 있는 계정이 생성됩니다.


4. 모델을 Admin 패널에 등록

모델을 정의했으면, 이를 Django Admin에서 관리할 수 있도록 등록해야 합니다. admin.py 파일에서 해당 모델들을 등록하는 코드를 추가합니다.

polls/admin.py

from django.contrib import admin
from .models import Question, Choice

# Register your models here
admin.site.register(Question)  # Question 모델 등록
admin.site.register(Choice)  # Choice 모델 등록

이제 Django Admin 패널에서 QuestionChoice 모델을 관리할 수 있습니다.

Admin 패널에서 모델 관리

관리자 계정으로 로그인한 후, /admin 경로에 접속하면 Admin 패널에 등록된 모델들을 볼 수 있습니다. 여기서 데이터의 추가, 수정, 삭제를 직관적으로 관리할 수 있습니다.


마무리

이번 포스팅에서는 Django에서 모델 필드를 정의하고, Django Admin 패널에 모델을 등록해 관리하는 방법을 알아보았습니다. Admin 패널은 Django의 큰 장점 중 하나로, 손쉽게 데이터를 관리할 수 있게 도와줍니다. 이후 포스팅에서는 더욱 심화된 모델 사용법과 Django 기능을 다룰 예정입니다.

태그:

카테고리:

업데이트:

댓글남기기