【问题标题】:Django, when using ForeignKey field, which is better blank=True or null=True?Django,在使用 ForeignKey 字段时,哪个更好 blank=True 或 null=True?
【发布时间】:2018-06-15 08:03:47
【问题描述】:

发件人:https://docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.Field.null

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

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

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

null=True 更好还是 blank=True 更好?在性能、便利性或其他方面。

【问题讨论】:

标签: django foreign-keys


【解决方案1】:

不一样。见docs

请注意,这与 null 不同。 null 纯粹与数据库相关,而空白与验证相关。如果字段的空白=True,表单验证将允许输入空值。如果某个字段的空白=False,则该字段为必填项。

所以对于 ForeignKey 你需要同时设置:null=True, blank=True

【讨论】:

    【解决方案2】:

    这些用于不同的目的:

    • Null = True:如果您想让数据库中的列可以为空,则使用它
    • blank = True:对数据库列无效。该列仍然不能为空(这是默认值),但在 html 表单中,输入字段可以保持为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-07
      • 2012-12-31
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 2015-07-09
      相关资源
      最近更新 更多