在将新模型从现有模型中分解出来时创建迁移

2024-10-01 02:39:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些这样的代码:

class Item(models.Model):
  something = models.ForeignKey('SomethingElse')
  property1 = models.TextField()
  city = models.TextField()
  street = models.TextField()
  country = models.TextField()

我想把它塑造成这样:

class Address(models.Model):
  city = models.TextField()
  street = models.TextField()
  country = models.TextField()

class Item(models.Model):
  something = models.ForeignKey('SomethingElse')
  property1 = models.TextField()
  address = models.ForeignKey('Address')

在尝试迁移项目时,Django要求我创建一个默认值。我怎样才能指定一个呢?或者,我如何创建一个迁移,根据数据库中已有的内容创建地址,然后将这些地址绑定到项目


Tags: 项目streetcitymodeladdressmodels地址item
1条回答
网友
1楼 · 发布于 2024-10-01 02:39:58

迁移只处理表结构,不能为您移动数据:

Django can’t automatically generate data migrations for you, as it does with schema migrations, but it’s not very hard to write them.

您应该在进行此更改之前添加Address模型,手动迁移数据,然后从Item模型中删除冗余字段。您可以使用data migrations将这些更改包括在迁移中

相关问题 更多 >