我在现有设计中添加了新模型来处理新要求。要进行迁移,现有数据需要默认值以跟上新模型设计的步伐。如何分配一个空对象作为默认值。
class NewModel(models.Model):
somedata = models.IntegerField(default=0)
class TheExistingModel(models.Model):
data1 = models.IntegerField(default=0)
newfield = models.OneToOneField(NewModel, on_delete=models.CASCADE, default= "?" )
新字段将添加到现有模型中,它需要一个默认值,以便更新数据库中的现有数据。同样,在创建新的TheExistingModel实例时,也必须创建相应的NewModel。
要保持现有对象不变,可以设置null = True
newfield = models.OneToOneField(NewModel, on_delete=models.CASCADE, null=True )
并且当迁移成功运行时,您可以删除null属性,这将使newfield不可为空,然后再次运行迁移。之后,您将始终必须为新的TheExistingModel对象
分配一个值。