比如说,我有一个包含这个字段的模型:
is_retired = models.NullBooleanField()
它从来没有为数据库中的任何记录设置过,所以我认为所有记录的这个字段都会有一个空值。
现在想把它改成字符串字段:
is_retired = models.CharField(max_length=50)
我正在使用 Django 1.7 并运行 makemigrations
似乎运行良好,说了一些关于 altered field 的事情。但是,当我实际运行 migrate
命令时,它失败了
django.db.utils.IntegrityError: column "is_retired" contains null values
我该如何解决?
最佳答案
如果要启用 null/empty 值,请将其更改为:
is_retired = models.CharField(max_length=50, null=True, blank=True)
您可能还想在另一个迁移中将空值更改为空字符串 ('')。
关于python - 我可以更改模型字段的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25009792/