쟝고 모델은 데이터의 정보와 동작의 근원이다.
django.db.models.Model의 하위 클래스인 파이썬 클래스로 구성된다.
각 모델은 데이터베이스 필드가 클래스의 각 속성을 표현하는 단일 DB 테이블에 매핑된다.
블로그 애플리케이션을 위한 DB 모델을 정의하고, 해당 테이블을 생성하기 위해 데이터베이스 마이그레이션을 만들자.
마이그레이션을 적용할 때 쟝고는 애플리케이션의 models.py 파일에 정의된 각 모델의 테이블을 생성한다.
블로그 게시물을 DB에 저장할 수 있는 Post 모델을 정의해 보자.
blog 애플리케이션의 models.py에 아래의 코드를 작성한다.
from django.db import models
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250)
body = models.TextField()
def __str__(self):
return self.title
기본적으로 쟝고는 각 모델에 자동으로 증가하는 primary키 필드를 추가한다.
이 primary키 필드는 각 애플리케이션 구성이나 DEFAULT_AUTO_FIELD 설정을 통해 전역적으로 지정된다,
startapp 명령으로 애플리케이션을 생성할 경우 DEFAULT_AUTO_FIELD 설정의 기본 값은 BigAutoField로, 자동 증가하는 64비트 정수 ID이다.
모델 기본 키를 지정하지 않으면 쟝고가 이 필드를 자동으로 추가한다.
primary_key=True 를 모델 필드에 설정해 모델 필드 중 하나를 기본 키로 정의할 수 있다.