admin 中需要带有默认空字符串的 django charfield

Adi*_*tov 2 django django-models django-admin

我有一个带有 Charfield 的模型:

class SomeModel(models.Model):
    charfield = models.Charfield(max_length=5, default="")
    ...
Run Code Online (Sandbox Code Playgroud)

我希望在管理员中使用时不需要此字段。但是当我将此模型包含在管理员中时,我需要此字段。我可以使用null=True, blank=True,但我很好奇这是某种错误还是我实施了错误?

Dan*_*man 6

我不确定你为什么认为这是一个错误。如果您不指定blank=True,则需要某种非空值。根据定义,空字符串是一个空值;所以 Django 非常正确地显示了一个错误,告诉您提供一个实际值。

您确实需要指定blank=True是否允许空字符串。但您无需指定null=True;实际上,正如文档所示,您不应该在 CharFields 上使用它。

  • 我希望将 `Charfield` 或 `TextField` 的默认值设置为空字符串,因此当您已经为 `CharField` 和 `TextField` 设置了 `blank=True` 时,设置 `default=''` 是多余的或者需要 `default=""` ? (2认同)