Django ORM cookbook을 정리한 내용입니다.
null, blank의 디폴트 값은 False !
- null과 blank는 모두 디폴트 값이 false입니다. 즉, null값을 허용하지 않습니다.
- 그렇기 때문에 null = True와 blank = True는 공백값(null, "")이 저장되는 것을 허용합니다.
- 이 경우의 DB 해당 column은 null 혹은 ""로 저장됩니다.
class Memo(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField('Date Published')
null과 blank의 차이
- null = True의 경우, DB column에 해당 값은 null로 저장이 됩니다.
- blank=True 는 필드가 폼(입력 양식)에서 empty한 상태로 저장되는 것을 허용합니다. DB column에 해당 값은 빈 폼의 형태, 즉 ''로 저장됩니다. (!= null)
단 CharField와 TextField는 예외항목으로 null을 저장하지 않습니다.
위 사진에서 아무 값을 입력하지 않은 채 제출버튼을 누르면, 공백('')값이 그대로 저장됩니다.