2011-01-05 476 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

相关问题