【问题标题】:django south - unique=True, but "give default value for existing rows" ?django south - unique=True,但“为现有行提供默认值”?
【发布时间】:2014-08-27 14:39:17
【问题描述】:

我已经创建了一个索引字段

channel_indexid = PositiveIntegerField(db_index=True, unique=True)

如果我尝试迁移,South 会要求我为现有行输入默认值。

1. Quit now, and add a default...
2. Specify a one-off value.. 

但是,channel_indexid 是唯一的,如何为所有行指定一个默认值?有什么解决方法吗?这真的很烦人

【问题讨论】:

    标签: django django-south


    【解决方案1】:

    由于您正在修改模型,South 会询问您现有行的默认值,因为您的新字段默认为null=False。你可以通过设置null=True, blank=True来避免给它一个默认值。

    如果您不希望它可以为空,并且仍想将此字段添加为不可为空,那么您必须删除表并使用新字段重新创建它。

    South 默认为新列提供null 值,但由于默认字段为null=False,因此 South 要求您为新字段提供一个值。 South 不会给出空字符串或 0 作为字符串或整数字段的默认值,如果该字段不可为空,您必须告诉 South 默认值,如果可以为空,它将给出默认值 null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      相关资源
      最近更新 更多