【问题标题】:Why does Django South require a default value when removing a field?为什么 Django South 在删除字段时需要默认值?
【发布时间】:2012-08-04 15:17:26
【问题描述】:

当我使用 Django South 删除 NOT NULL 字段时,我收到以下消息:

?字段“VisitOrder.end_date”没有指定默认值,但不为空。 ?由于您要删除此字段,因此您必须指定默认值 ?用于现有行的值。你是否想要: ? 1. 现在退出,并在models.py中的字段添加一个默认值 ? 2. 现在指定一个一次性值用于现有列 ? 3. 通过引发异常禁用向后迁移。 ?请选择一个选项:

既然 South 无论如何都会移除该字段,为什么需要这个?

【问题讨论】:

    标签: django django-south


    【解决方案1】:

    Django South 允许您通过迁移向前或向后移动。因此,如果您决定撤消迁移,South 将重新创建已删除的字段。这就是为什么 South 询问您是否要指定默认值或“通过引发异常来禁用 向后 迁移。”

    【讨论】:

    • 谢谢。确认一下,第三个选项的意思是“不指定默认值,在这种情况下,如果您稍后向后迁移,即取消删除该字段,我会在那个时候抛出异常”?
    • 这一澄清虽然看起来很明显,但非常有必要。谢谢。
    • 这对我帮助很大。到目前为止,这似乎只是一个“唠叨提示”。
    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2022-01-13
    • 2014-12-07
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多