【问题标题】:Django DateTimeField Defined as blank=True, null=True but doesn't allow nullDjango DateTimeField 定义为 blank=True, null=True 但不允许 null
【发布时间】:2011-03-20 12:01:26
【问题描述】:

我的一个 Django 模型中有一个 DateTimeField。

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

我已将其定义为允许空白和空值。但是,当我尝试创建模型的实例时,出现以下错误:

IntegrityError 在 /admin/tasks/project/add/

tasks_project.completed_date 可能不会 为空

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

我找到了一个ticket that describes the same problem,但它在 4 年前就被固定关闭了,所以我想它现在一定已经集成到 Django 中了!

【问题讨论】:

  • 你在创建字段的syncdb之后添加了null=True吗?
  • 除非您删除运行 syncdb 的表,否则不会更改字段上的约束。您需要使用迁移工具,例如 south 或删除该表,然后再次运行 syncdb。

标签: python django


【解决方案1】:

django syncdb and an updated model

从那个问题/答案:

Django 不支持迁移出去 的盒子。有一个可插拔的应用程序 对于 Django 正是这样做的 不过,效果很好。它是 叫南。

http://south.aeracode.org/

有段时间没用过django了,不过我 似乎记得syncdb确实 对 db 表执行 alter 命令。 你必须放下桌子然后运行 再次,它将再次创建。

【讨论】:

  • 我向南。它的安装、启动和运行非常快速和容易。最好的部分:没有编写迁移文件(到目前为止)。
猜你喜欢
  • 1970-01-01
  • 2015-07-09
  • 2011-06-16
  • 2014-09-23
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多