오늘은 Field options
에 대해 알아보자!
이번에도 내가 자주 사용할 것만 정리해보겠다.
null
Field.null
True
로 설정하면 빈 값을 저장한다.
False
이다.CharField
, TextField
와 같은 문자열 기반 필드에서는 사용하지 말자.null=True
는 NULL
과 빈 문자열
의 두 가지의 값이 있음을 의미한다.blank
Field.blank
True
로 설정하면 비어있는 값을 허용한다.
False
이다.null
과는 다르다!📌
null vs blank
null
은 순전히 데이터베이스 측면에서 생각하는 것이며,blank
는 유효성 검증 측면에서 생각하는 것이다.null
은 필드의 값이NULL
으로 저장되는 것을 허용하고,blank
는 필드에 비어있는 채로 저장되는 것을 허용하는 것이다!
default
Field.default
필드의 기본값을 지정한다.
primary_key
Field.primary_key
True
로 설정하면 해당 필드는 모델의 기본 키이다.
primary_key=True
라고 명시하지 않으면 Django가 자동으로 primary key를 추가한다.primary_key=True
는 null=False
, unique=True
를 암시한다.unique
Field.unique
True
로 설정하면 해당 필드는 반드시 테이블 전체에서 고유한 값이어야 한다.
unique
필드에 중복되는 값이 있는 모델을 저장하려고 하면, 모델의 save()
메서드에 의해 django.db.IntegrityError
가 발생한다.ManyToManyField
, OneToOneField
를 제외한 모든 필드 타입에서 유효하다.