Django South - 将null = True字段转换为null = False字段

时间:2011-01-21 16:16:33

标签: python django django-models django-south

我的问题是,使用Django South将null=True字段转换为null=False字段的最佳做法是什么。具体来说,我正在使用ForeignKey

2 个答案:

答案 0 :(得分:6)

您应首先编写数据迁移:http://south.aeracode.org/docs/tutorial/part3.html 然后进行schemamigration。

答案 1 :(得分:3)

如果要将可为空的ForeignKey转换为不可为空的,那么如果该字段(列)的任何行为NULL,则可能会出现问题。在这种情况下,您需要删除或修复它们 - 可能使用自定义数据迁移,如其他答案中提到的diegueus9

但是如果你在该列中没有任何带NULL的行,例如因为只有在将来可能需要它时才设置null = True,那么你应该能够进行简单的自动模式迁移:

$ ./manage.py schemamigration myapp remove_null_from_fkey --auto
(...)
$ ./manage.py migrate myapp
相关问题