장고 모델 디자인(Null, Blank)

런던행·2020년 11월 10일
0

Django 업그레이드

목록 보기
4/17

언제 널을 쓰고 언제 공백을 쓸 것인가.

모델 필드를 정의할 때 null=True와 blank=True를 설정하는 옵션을 선택할 수 있다. 기본값은 두 값 다 False로 되어 있다. 언제 이 옵션들은 쓸지 흔히 혼동하게 된다. 모델 필드 인자들에 대한 일반적인 가이드를 여기 한자리에 모아 봤다.

필드 타입 null=True로 설정하기 blank=True로 설정하기
CharField, TextField, SlugField, EmailField, CommaSepraterdIntegerField, UUIDField 이용하지 않는다 이용한다. 위젯이 빈 값을 허용하기를 원한다면 설정한다. 이렇게 설정하면 데이터베이스에 빈 값이 빈 문자열로 저장된다.
FileField, ImageField 이용하지 않는다 이용한다. CharField에 적용된 것과 같은 규칙이 적용 된다.
BooleanField 이용하지 않는다. 대신 NullBooleanField를 이용한다. 이용하지 않는다.
IntegerField, FloatField, DecimalField, Durationfield등 해당 값이 데이터베이스에 Null로 들어가도 문제가 없다면 이용한다. 위젯에서 해당 값이 빈 값을 받아와도 문제가 없다면 이용한다. 그럴경우 null=True와 같이 이용한다.
DateTimeField, DateField, TimeField 해당 값이 데이터베이스에 Null로 들어가도 문제가 없다면 이용한다. 위젯에서 해당 값이 빈 값을 받아와도 문제가 없다면 이용한다. 그럴경우 null=True와 같이 이용한다.
ForeignKey, ManyToManyField, OneToOneField 해당 값이 데이터베이스에 Null로 들어가도 문제가 없다면 이용한다. 위젯에서 해당 값이 빈 값을 받아와도 문제가 없다면 이용한다. .
GenericIPAddressField 해당 값이 데이터베이스에 Null로 들어가도 문제가 없다면 이용한다. 위젯에서 해당 값이 빈 값을 받아와도 문제가 없다면 이용한다.
profile
unit test, tdd, bdd, laravel, django, android native, vuejs, react, embedded linux, typescript

0개의 댓글