django south - unique=True,但是 "give default value for existing rows"?

标签 django django-south

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

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/

相关文章:

python - Django 1.11 order by field on related model duplicate results 解决方法

python - 如何在mongoDB中存储图像?

php - 如何在一台 Apache 服务器上同时运行 Django 和 PHP?

python - 如何克服 urlopen 错误 [WinError 10060] 问题?

python - Python 中的前向类声明

database - South 的回滚应该如何工作?

Django - "Include"几个模板中的一个 block ?模板标签?还有什么?

Django:如何让 South 为添加到 INSTALL_APPS 的第三方应用程序创建表?

django - 当还涉及迁移时,如何使用 django 进行同步数据库

python - 如何使用 migrate appname --fake 运行测试?