Python Django模型字段默认为空

Python Django模型字段默认为空,python,django,django-models,Python,Django,Django Models,我需要让Django应用程序允许我为某个模型字段设置默认值NULL。我已经查看了null、blank和default参数,但还不清楚需要使用这三个参数的组合来获得所需的效果。我尝试设置default=NULL,但它抛出了一个错误。如果我指定blank=True,null=True并且没有默认值,它是否会默认回到空来运行时?尝试default=None。python中没有NULL如果在模型字段中指定NULL=True,那么如果用户不提供值,则该值将作为NULL存储在数据库中。 blank=True

我需要让Django应用程序允许我为某个模型字段设置默认值NULL。我已经查看了null、blank和default参数,但还不清楚需要使用这三个参数的组合来获得所需的效果。我尝试设置
default=NULL
,但它抛出了一个错误。如果我指定
blank=True,null=True
并且没有默认值,它是否会默认回到空来运行时?

尝试
default=None
python中没有
NULL

如果在模型字段中指定NULL=True,那么如果用户不提供值,则该值将作为NULL存储在数据库中。

  • blank=True
    允许您不输入任何内容(即
    “”
    )并将其保留为空
  • null=True
    表示允许数据库行为
    NULL
  • default=None
    如果没有给出其他值,则将字段设置为
    None

在大多数情况下都不是这样,因为它通常会存储一个空字符串。@AlfonsIngomar不正确,来自文档-“如果为true,Django将在数据库中将空值存储为NULL。默认值为False。”请看下一段:避免在基于字符串的字段(如CharField和TextField)上使用null,因为空字符串值将始终存储为空字符串,而不是null。如果基于字符串的字段有null=True,这意味着它有两个可能的“无数据”值:null和空字符串。在大多数情况下,有两个可能的“no data”值是多余的;Django约定是使用空字符串,而不是NULL。是的,我已经阅读了文档,谢谢,没有,在原始帖子或我的回复中提到了基于字符串的字段。如果在基于字符串的字段上输入null=True,则如果未输入任何数据,该字段将作为null存储在数据库中。我完全不知道你在这里试图指出的与本次讨论相关的内容。在任何情况下,如果将null=true,空值都将存储为null。文档建议您不要在字符串上设置null=True,因为这样它们将被存储为null,这并不是说字符串字段将忽略设置null=True。也许我的解释是错误的,但是文档中的“因为空字符串值将始终存储为空字符串,而不是null”是什么意思?为了清楚起见,他所指的空值用于Django模型字段。这允许/不允许对该值使用None值,该值在数据库中存储为NULL,而不是在Python中。空白是指在表单/admin/etc中进行验证时是否需要该值。@Nexion,
default=None
不允许或不允许使用None值。它只是告诉Django如果没有指定字段的值,该字段的值应该是什么
null=True
不允许在Python代码中使用任何值。它在数据库中被视为NULL。关于blank被用于表单验证,您是对的。