Django Model Field Default to Null
我需要让我的django应用程序允许我为某个模型字段设置默认值空值。我已经查看了空参数、空白参数和默认参数,但还不太清楚需要使用这三种参数的哪种组合来获得所需的效果。我试过设置default=NULL,但它出错了。如果我指定blank=True, null=True并且没有默认值,那么运行时它会默认返回空值吗?
default=None吧。有好的NULL在Python。 </P >
- 就这样,谢谢。:)
- 为了清楚起见,他所指的空值是用于django模型字段的。这允许/不允许将无值用于该值,该值在数据库中存储为空值,而不是在Python中。空白是指在表单/admin/etc中验证是否需要该值。
- @nexion,default=None不允许或不允许使用none值。它只是告诉Django如果未指定字段值,那么字段值应该是什么。null=True不允许在python代码中使用任何代码。它在数据库中被视为空。你说得对,空白用于表单验证。
如果你指定的零(真的是该模型的场前的值将为零可存储在数据库中,如果用户并不提供一个值。 </P >
- 在大多数情况下都不是这样,因为它通常会存储一个空字符串。
- @alfonsingomar不正确,从docs-docs.djangoproject.com/en/1.8/ref/models/fields/空。如果为真,django将在数据库中将空值存储为空。默认值为假。"
- 请看下一段:避免对基于字符串的字段(如charfield和textfield)使用null,因为空字符串值将始终存储为空字符串,而不是空字符串。如果一个基于字符串的字段为空=真,这意味着它有两个可能的"无数据"值:空和空字符串。在大多数情况下,"no data"有两个可能的值是多余的;django约定使用空字符串,而不是空字符串。
- 是的,我已经阅读了文档,谢谢,不,在原始文章或回复中提到了基于字符串的字段。如果在基于字符串的字段上输入NULL=true,那么如果没有输入数据,它将在数据库中存储为NULL。我完全不知道你在这里试图指出的与这次讨论相关的内容。在任何情况下,如果您将空值设置为空,则空值都将存储为空值。文档建议您不要在字符串中输入null=true,因为这样它们将被存储为null,而不是说字符串字段将忽略输入null=true。
- 也许我的解释方法不对,但是在这种情况下,"因为空字符串值将始终存储为空字符串,而不是空字符串",文档意味着什么?
- django中的charfields和textfields从不保存为空。空值作为空字符串("")存储在数据库中。
1 2 3
| blank=True # means in django Admin, it allow you input nothing and keep it empty.
null = True # mean the field in database is allow to be empty.
default = None # make the database field None by default. |