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

时间:2018-01-05 13:39:08

标签: django foreign-keys

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

  

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

那么ForeignKey Field有什么好处? ForeignKey字段不是基于字符串的字段,不是吗?

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

null = True更好还是空白= True更好?在表演,方便或任何事情上。

2 个答案:

答案 0 :(得分:4)

这是不同的。见docs

  

请注意,这与null不同。 null纯粹与数据库相关,而blank与验证相关。如果字段为空= True,则表单验证将允许输入空值。如果字段为空= False,则需要该字段。

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

答案 1 :(得分:3)

这些用于不同目的:

  • Null = True :如果您想让数据库中的列可以为空,则使用
  • blank = True :它在数据库列中不起作用。此列仍然不可为空(这是默认值),但在html格式中,输入字段可以保持为空。