首页 文章

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

提问于
浏览
1

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

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

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

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

null = True更好还是空白= True更好?在表演,方便或有点什么 .

2 回答

  • 3

    这不一样 . 见docs

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

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

  • 3

    这些用于不同的目的:

    • Null = True :如果要将数据库中的列设置为可空,则使用它

    • blank = True :它在数据库列中不起作用 . 此列仍然不可为空(这是默认值),但在html格式中,输入字段可以保持为空 .

相关问题