[Django] null, blank

김광일·2022년 3월 12일
0

DJANGO

목록 보기
8/8
post-thumbnail

장고를 공부하며 회원가입 model을 작성하다보니 email 이나 id 값은 중복이 되면 안 되기 때문에 unique=true를 넣어 주었고,
혹시라도 핸드폰이 없는 사람이 있을 수도 있기에 phone_number에는 blank=true를 넣게 되었다.
여기서 궁금한 점이 생겼는데, nullblank의 차이점은 무엇인가?


0. null 과 blank의 공통점

차이점을 알아보기 이전에 공통점에 대해서 먼저 알아보면 null=trueblank=true는 기본값이 빈 값으로 False이다. 이 두 설정은 모두 열(column) 수준에서 동작한다.


1. null=true

먼저 null=true 의 경우엔 필드의 값이 NULL로 저장 되는 것을 허용한다.
사진과 같이 Null 부분이 Yes로 바뀌게 되는데, 이는 정보가 없어도 저장을 해주겠다는 말이다. 데이터베이스에 저장된 값을 보면 NULL로 저장이 되어있다.

그리고 한가지 더. unique = true를 설정해놓으면 null 값도 중복저장이 안 된다.


2. blank=true

blank=true 의 경우엔 키 값은 존재하고, 입력 양식에서 입력 값으로 빈 값을 허용하겠다는 의미이다. 사실상 이 부분은 없어도 입력할 때 빈 값으로 전송을 보내면 '' 빈 스트링이 db에 저장된다.

사실상 blank 만 허용하는 경우보다, null=true일 때, blank도 함께 ture값을 준다.


내가 참고한 사이트
참고 1

profile
부족함 없이 공부하자

0개의 댓글