blank
設置為True時,字段可以為空。設置為False時,字段是必須填寫的。字符型字段CharField和TextField是用空字符串來存儲空值的。
如果為True,字段允許為空,默認不允許。
null
設置為True時,django用Null來存儲空值。日期型、時間型和數字型字段不接受空字符串。所以設置IntegerField,DateTimeField型字段可以為空時,需要將blank,null均設為True。
如果為True,空值將會被存儲為NULL,默認為False。
如果想設置BooleanField為空時可以選用NullBooleanField型字段。
一句話概括
- null 是針對數據庫而言,如果 null=True, 表示數據庫的該字段可以為空。
- blank 是針對表單的,如果 blank=True,表示你的表單填寫該字段的時候可以不填,比如 admin 界面下增加 model 一條記錄的時候。直觀的看到就是該字段不是粗體
- 通俗點說,該字段null=true后,你進行插入,修改操作時可以為空,然后Django把空值轉換成null存在數據庫中,而blank只是在表單驗證的時候會檢測你是否可以為空