我已经创建了一个索引字段
channel_indexid = PositiveIntegerField(db_index=True, unique=True)
如果我尝试迁移,south 会要求我为现有行输入默认值。
1. Quit now, and add a default...
2. Specify a one-off value..
但是,channel_indexid
是唯一的,如何为所有行指定一个默认值?有什么解决方法吗?这真的很烦人
最佳答案
由于您正在修改模型,South 会要求您提供现有行的默认值,因为您的新字段默认为 null=False
。您可以通过设置 null=True, blank=True
来避免为其提供默认值。
如果您不希望它可以为 null,并且您仍想将此字段添加为不可为 null,则必须删除该表并使用新字段重新创建它。
默认情况下,South 为新列提供一个 null
值,但由于默认字段为 null=False
,因此 South 要求您为新字段提供一个值。 South 不会为字符串或整数字段提供空字符串或 0 作为默认值,如果字段不可为 null,则必须告诉 South 默认值,如果可为 null,它将给出默认值 null
.
关于django south - unique=True,但是 "give default value for existing rows"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25530112/