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