Windows 코딩

pybo/models.py 파일에 작성하는 모델 코드 예제

easyfly 2025. 5. 1. 05:44

pybo/models.py 파일에 작성하는 모델 코드 예제


📄 pybo/models.py 예제

from django.db import models

class Question(models.Model):
    subject = models.CharField(max_length=200)   # 질문 제목
    content = models.TextField()                 # 질문 내용
    create_date = models.DateTimeField()          # 생성 일시

    def __str__(self):
        return self.subject

class Answer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)  # 연결된 질문
    content = models.TextField()                                       # 답변 내용
    create_date = models.DateTimeField()                               # 생성 일시

    def __str__(self):
        return self.content

 

쿼리문 실행 내력을 알아보는 sqlmigrante

migrate 명령을 실행할 때 실제로 어떤 쿼리문이 실행되는지를 알기 위해서 사용합니다. 다음은 'python manage.py sqlmigrate pybo 0001' 실행한 결과입니다.

쿼리문이 실행되는 내력


🛠️ 간단히 설명드립니다

클래스/필드 설명

Question 모델 질문을 표현하는 테이블
subject 질문 제목 (최대 200자 문자열)
content 질문 본문 (길이 제한 없음)
create_date 질문 생성 시각
Answer 모델 답변을 표현하는 테이블
question 어떤 질문에 달린 답변인지 연결 (ForeignKey)
content 답변 본문
create_date 답변 작성 시각

✨ 중요한 포인트

  • models.Model을 상속받아 모델을 정의합니다.
  • CharField, TextField, DateTimeField 같은 필드 타입을 적절히 사용합니다.
  • ForeignKey를 이용해서 Question과 Answer를 연결합니다.
    • on_delete=models.CASCADE는 질문이 삭제되면 연결된 답변도 함께 삭제되게 합니다.
  • __str__ 메서드를 정의하면, 객체를 출력할 때 보기 좋은 문자열이 보입니다.
    (관리자(admin) 페이지나 셸에서 유용합니다.)

📢 추가로

이렇게 models.py를 만들고 나면, 다음 순서로 데이터베이스 테이블이 생성됩니다:

  1. python manage.py makemigrations
  2. python manage.py migrate