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只是在表單驗證的時候會檢測你是否可以爲空