为什么Django DateField不接受空值?

时间:2018-07-12 14:11:48

标签: django python-3.x django-models

我有一个模型,其中的DateField字段为blank = True和null = True。 似乎不可以保存日期字段为空值的对象。

class ProjectTask(models.Model):
    actual_start_date = models.DateField(blank=True, null=True)

然后尝试使用Python控制台:

p = ProjectTask.objects.all().last()
p.actual_start_date = ""
p.save()

结果是:

venv/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1273, in to_python
    params={'value': value},
django.core.exceptions.ValidationError: ["'' value has an invalid date format. It must be in YYYY-MM-DD format."]

我正在使用Python 3.4,Django 1.9和PostgreSQL。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

日期不是字符串。如果要传递字符串,则需要将其转换为日期。通常,您的表单会验证您是否有一个有效的日期,但是您可以通过直接在模型上设置一个空字符串来绕过此日期。

如果您根本不想设置任何值,请传递无。

相关问题