Django 如何通过向南迁移在现有模型中添加一对一关系字段
我已经有了一个模型Django 如何通过向南迁移在现有模型中添加一对一关系字段,django,django-south,Django,Django South,我已经有了一个模型 class ModelA( models.Model ): name = models.CharField ( max_length = 255, blank = False ) 我在里面有很多条目。现在我想在其中添加一个字段,它是 user = models.OneToOneField( User ) 如何将此字段添加到ModelA?除了删除以前的所有条目,还有其他解决方案吗?我会使用以下模式: 将“user=models.OneToOneField(user,
class ModelA( models.Model ):
name = models.CharField ( max_length = 255, blank = False )
我在里面有很多条目。现在我想在其中添加一个字段,它是
user = models.OneToOneField( User )
如何将此字段添加到
ModelA
?除了删除以前的所有条目,还有其他解决方案吗?我会使用以下模式:
顺便说一句,如果使用OneToOneField()而不使用null=True,则可以在此字段上设置primary_key=True,因为它必须是唯一的。但我不知道南方是否能处理好这次移民。问题是什么
--auto
不起作用?--auto
起作用,但要求为以前的条目提供默认值?用户
字段为unique=True
和null=False
如果要删除以前的所有条目,只需在迁移之前删除它们即可。:-)@szamanOneToOneField
是unique=True
所以在步骤5之后,数据库中不允许有多个空条目,当我要迁移时,迁移要求为用户添加默认值,因为它将从空状态变为非空。那么默认值是什么呢?空字符串不起作用:(请尝试0,或编辑创建架构迁移文件,并在此处提供默认值0。完全相同的方法适用于Django迁移(无South),步骤2和5使用“python manage.py makemigrations”。谢谢!