Django null=True和blank=True的區別

今天遇到一個問題:數據庫

在restframework框架中開發,數據庫了建立了一個model的屬性以下所示:框架

    remarks = models.CharField(verbose_name=u"描述", max_length=500, null=True)
remarks爲非必傳數據,因此在serializer中沒有加驗證,當時以爲沒什麼問題,但在提交數據時remarks爲空字符串,報錯爲‘驗證失敗,remarks不能爲空’。但當remarks不傳值時則沒有報錯。
後來通過一番查找搜索,發現是沒有加blank=True的緣由。
最終通過修改:
    remarks = models.CharField(verbose_name=u"描述", max_length=500, null=True, blank = True)

再次提交,即便remark爲空字符串,依然能提交成功。
總結以下:spa

一、serializer中沒有加驗證,因此remarks不傳值時能夠經過,切此時默認爲null。這是null=True在起做用,null是和數據庫相關的,當reamrks爲空時,就會被存儲爲NULL。
二、blank = True是頁面表單驗證相關的,表示在頁面當中對應的表單能夠爲空,能夠不填任何內容。
相關文章
相關標籤/搜索