Django ORM中null和blank的區別

在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,即:不允許爲空,查看源碼可知:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章