Django DateTimeField 设置为 blank=True,null=True 但不允许为 null

8 投票
1 回答
11355 浏览
提问于 2025-04-16 14:04

我在我的一个Django模型里有一个日期时间字段(DateTimeField)。

    completed_date = models.DateTimeField('date completed', blank=True, null=True)

我已经设置这个字段可以为空和允许空值。但是,当我尝试创建这个模型的一个实例时,出现了以下错误:

在 /admin/tasks/project/add/ 发生了完整性错误(IntegrityError)

tasks_project.completed_date 不能是 NULL

我使用的是Django 1.25和Python 2.7。有人知道为什么会这样吗?我能做些什么来解决这个问题吗?

我找到了一条关于同样问题的记录,但它在四年前就被关闭了,说明这个问题应该已经在Django里修复了吧!

1 个回答

10

django syncdb 和更新后的模型

来自那个问题/回答:

Django 默认不支持数据库迁移。不过,有一个可以添加到 Django 的插件,它正好可以实现这个功能,而且效果很好。这个插件叫做 South。

http://south.aeracode.org/

我有一段时间没用 Django 了,但我记得 syncdb 确实会对数据库表执行一些修改命令。你需要先删除表,然后再运行一次,它就会重新创建这个表。

撰写回答