admin中需要django charfield,默认为空字符串

时间:2016-09-04 09:12:22

标签: django django-models django-admin

我有一个带Charfield的模型:

class SomeModel(models.Model):
    charfield = models.Charfield(max_length=5, default="")
    ...

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

2 个答案:

答案 0 :(得分:4)

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

如果要允许空字符串,则需要指定blank=True。但是你不需要指定null=True;事实上,正如文档所示,你不应该在CharFields上使用它。

答案 1 :(得分:1)

这是对的。 defaultnullblank具有不同的含义。

null允许数据库https://docs.djangoproject.com/en/dev/ref/models/fields/#null

上的NULL值

blank允许模型https://docs.djangoproject.com/en/dev/ref/models/fields/#blank

上的空白值

此外,使用blank=True的ModelForm(由管理员使用)将必填字段设为false,请参阅https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#field-types