为什么 Django DateField 不接受空值?

0 django django-models python-3.x

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

class ProjectTask(models.Model):
    actual_start_date = models.DateField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

然后尝试使用 Python 控制台:

p = ProjectTask.objects.all().last()
p.actual_start_date = ""
p.save()
Run Code Online (Sandbox Code Playgroud)

结果是:

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."]
Run Code Online (Sandbox Code Playgroud)

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

有什么建议么?

Dan*_*man 7

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

如果您根本不想设置值,则传递 None。