2011-01-05 169 views
41

我需要讓我的Django應用程序允許我爲某個模型字段設置默認值NULL。我已經看過null,空白默認參數,但它不是很清楚我需要使用哪三種組合來獲得所需的效果。我試過設置default=NULL,但它拋出了一個錯誤。如果我指定blank=True, null=True並且沒有默認值,它是否會默認回到NULL來運行?Django模型字段默認爲空

回答

67

嘗試default=Nonepython中沒有NULL

+0

這樣做的伎倆,謝謝。 :) – SPoage 2011-01-05 14:32:17

+2

爲了清楚起見,他所指的NULL是用於Django模型字段的。這允許/不允許將該值用於該值,該值在數據庫中作爲NULL存儲,而不是在Python中存儲。空白表示是否在forms/admin/etc中驗證所需的值。 – Nexion 2016-04-20 17:52:15

+0

@Nexion,'default = None'不允許或不允許使用None值。它只是告訴Django如果沒有指定該字段的值應該是什麼值。 null = True'允許在Python代碼中使用None。它在數據庫中被視爲NULL。關於空白用於表單驗證你是對的。 – Bobort 2017-09-13 14:19:29

22

如果指定空=真型號場則該值將被存儲爲NULL在數據庫中,如果用戶沒有提供一個值。

+2

這在大多數情況下都不是這樣,因爲通常它會存儲一個空字符串。 – hY8vVpf3tyR57Xib 2015-11-09 15:38:47

+0

@AlfonsIngomar錯誤,從文檔 - https://docs.djangoproject.com/en/1.8/ref/models/fields/#null 「如果爲True,Django將在數據庫中將NULL值存儲爲NULL。默認爲假。」 – Kevin 2015-11-10 11:00:42

+4

查看下一段落:避免在基於字符串的字段(如CharField和TextField **)上使用null,因爲空字符串值將始終以空字符串存儲,而不是NULL **。如果基於字符串的字段的值爲空= True,則表示它有兩個可能的值:「無數據」:NULL和空字符串。在大多數情況下,「無數據」有兩個可能的值是多餘的,Django約定是使用空字符串,而不是NULL。 – hY8vVpf3tyR57Xib 2015-11-10 16:08:38

相關問題