Django,当使用ForeignKey字段时,哪个更好的是blank = True或null = True?

tou*_*ist 1 django foreign-keys

来自:https : //docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.Field.null

避免在基于字符串的字段(例如CharField和TextField)上使用null。如果基于字符串的字段具有null = True,则意味着它具有“无数据”的两个可能值:NULL和空字符串。在大多数情况下,为“无数据”使用两个可能的值是多余的; Django约定是使用空字符串,而不是NULL。

那么在ForeignKey领域上有什么更好的呢?ForeignKey字段不是基于字符串的字段,不是吗?

我想知道 what is convention for ForeignKey in django.

null =真是更好还是空白=真是更好?在性能,便利性或其他方面。

Mah*_*buj 6

它们用于不同的目的:

  • Null = True:如果您想让数据库中的列可以为空,则使用它
  • Blank = True:它不会影响数据库列。该列仍然不能为空(默认情况),但在 html 表单中,输入字段可以保留为空。


nev*_*ner 5

这不一样。参见文档

请注意,这不同于null。null纯粹是与数据库有关的,而空白是与验证有关的。如果字段的空白为True,则表单验证将允许输入一个空值。如果字段的空白为False,则需要该字段。

因此,对于ForeignKey,您需要同时设置以下两者:null=True, blank=True