在Django中定義模型類的時候,常常會有用到null和blank這兩個參數,比如下面給某個模型類定義了一個name字段
name = models.CharField(max_length=10, null=True, blank=True)
這裏同時定義了null和blank爲True,這兩個參數都是允許爲空的意思,但是卻是有區別的:
null=True 表示在數據庫層面允許爲空。
blank=True 表示在前端表單層面允許爲空。
應該很好理解,假如blank設爲False,那麼提交表單時如果表單爲空則會提交失敗;如果null設爲False,那麼當後端接收到了一個空表單準備存入數據庫的時候就會失敗。所以在使用這兩個參數時需要注意搭配,不要使blank爲True而null爲False,這樣的結果就是表單提交成功而操作數據庫失敗,對用戶來說不太友好。
另外,null和blank默認都等於False,即:不允許爲空,查看源碼可知: