django south - unique = True,但“为现有行提供默认值”?

时间:2014-08-27 14:39:17

标签: django django-south

我创建了一个索引字段

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

如果我尝试迁移,则南方要求我输入现有行的默认值。

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

但是,channel_indexid是唯一的,我如何为所有行提供一个默认值?对此有什么好处吗?这真烦人

1 个答案:

答案 0 :(得分:1)

由于您要修改模型,因此南方会询问您自新字段以来现有行的默认值,默认情况下为null=False。您可以通过设置null=True, blank=True来避免为其设置默认值。

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

South默认情况下为新列提供null值,但由于默认字段为null=False,因此South会要求您输入要添加到新字段的值。 South不提供空字符串或0作为字符串或整数字段的默认值,如果字段不可为空,则必须告诉South默认值,如果字段可以为空,则它将提供默认值null