python - 我可以更改模型字段的类型吗?

标签 python django postgresql django-models django-south

比如说,我有一个包含这个字段的模型:

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/

相关文章:

python - 根据共同的第一项将子列表分类为新的子列表

python - PySide (1.1.2)、cx_freeze、WinXP、Python 3.3 : ImportError: DLL load failed

python - Django 时间问题

python - 在 Django Rest Framework 中的序列化程序之间混合公共(public)字段

python - 在 Celery 中,如何运行一个任务,然后让该任务运行另一个任务,并继续运行?

java - 使用@Query和@Modifying的Spring数据JPA PSQLException

sql - pg_dump 错误 : 'ONLY relation' not supported

sql - 根据不同列和非不同列将表拆分为两个相关表

python 为什么在调用 my_string.lower() 时不调用 str 或 repr 或 unicode

python - 如何解决此 Psycopg 错误消息(python)