【问题标题】:django 1.8 model field permits blank but is requireddjango 1.8 模型字段允许空白但为必填项
【发布时间】:2015-07-06 11:09:46
【问题描述】:

我有一些模型字段的值应该是可选的。根据docs,我设置为空白但不为空。 Manage.py makemigrations 说我需要一个默认值,即使它是空的,没问题:

address = models.CharField(max_length=100, blank=True, default="")

然而,当我在表单中使用它时,表单验证会返回“此字段是必需的”。

表格如下所示:

address = forms.CharField(max_length=128)

解决方案很简单,就是表单需要看起来像这样:

address = forms.CharField(max_length=128, required=False)

请参阅第二句开头的文档链接,了解为什么使用 null=True 不是正确的做法。

【问题讨论】:

  • 可以出示表格吗?

标签: django django-models django-forms


【解决方案1】:

我认为您需要清楚地了解两者之间的区别: 空=真,空白=真。

null = true,当特定字段的值是可选的时使用。 空白 = true,当在表单中使用该字段的值时将其呈现为 'required' 字段时使用。

它们一起用于某些字段,以确保特定字段的值是可选的。因此,这里不是使用 blank=True,而是强制执行 null=True 以使 first_name 的值是可选的。

【讨论】:

  • 您在我链接的文档中看到评论了吗?建议对缺失的字符串值使用空字符串而不是 null,以避免出现两种类型的非值。
  • 您使用的是 ModelForm 吗?您可以在这里发布您的表单代码吗?
【解决方案2】:

啊哈,表单域应该标记为required=False。我已更新问题以完整显示更正的行。

reference

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 2011-07-14
    • 2020-10-09
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2011-12-02
    • 2010-11-11
    相关资源
    最近更新 更多