Model 만들기
from django.db import models
class <model name>(models.Model):
<variable name> = models.<model field>
Model Field
- Django Model은 대부분의 데이터를 저장할 수 있는 필드(Field)를 지원
필드(Field)
- 필드(Field)는 데이터 테이블에서의 열(column), 즉 데이터의 속성을 의미
CharField
- class CharField(max_length=None)
- 제한된 길이의 문자열을 위한 필드
- max_length 필수 인수이며 입력할 최대 길이를 설정
IntegerField
- class IntegerField()
- 정수 값을 위한 필드이며 -2147483648 부터 2147483647 범위를 지원
BooleanField
- class BooleanField()
- Boolean 값을 위한 필드
DateField
- class DateField(auto_now=False, auto_now_add=False)
- DateField는 파이썬의 datetime.date 객체 형태로 표시되는 날짜 필드
- auto_now
- true로 설정되면 해당 객체가 변경(save) 될 때마다 자동으로 필드 값을 지금으로 수정
- auto_now_add
- 모델이 처음 생성될 때 한 번, 자동으로 필드 값을 지금으로 설정
- '생성된 시간'을 저장하기 위해 많이 사용
DateTimeField
- class DateTimeField(auto_now=False, auto_now_add=False)
- 파이썬의 datetime.datetime 객체 형태로 표시되는 날짜 필드
- DateField와 인수 옵션은 같음
EmailField
FileField
- class FileField(upload_to=None, max_length=100)
- 파일 업로드를 위한 필드
ImageField
- class ImageField(upload_to=None, height_field=None, width_field=None, max_length=100)
- FileField를 상속하여 구현되는 파일 업로드를 위한 필드이며 기본적으로 최대 길이가 100인 문자열 형식으로 생성
- FileField에서 업로드된 파일이 정상적인 이미지 파일인지 확인하는 과정이 추가된 필드로 이미지 처리를 위한 Pillow 라이브러리가 필수적으로 필요
- height_field & width_field 객체가 저장 될 때 이미지의 높이와 너비값이 자동으로 채워짐
옵션(Option)
- 옵션은 모든 필드 타입에 사용할 수 있으며 선택적으로 적용할 수 있음
null
- Field.null
- 기본 값은 False이며 Null 값 허용 여부를 선택
blank
- Field.blank
- 기본 값은 False이며 True로 설정한 경우 필드 값을 빈 값으로 설정할 수 있음
default
- Field.default
- 필드의 기본값을 설정하는 옵션으로 값 또는 함수가 들어갈 수 있음
db_column
- Field.db_column
- 해당 필드에 사용할 데이터베이스 속성 명을 지정
공식문서