1

我目前有这样的设置。

#models.py
class Donate(model.Model):
             item_locations = models.CharField(max_length=150)
#forms.py
    ItemChoices = (('item1','item1'),('item2','item2'),('item3','item3'))
    class DonateForm(ModelForm):
         item_locations = CharField(choices=ItemChoices)
         class Meta:
              model = Donate

我想将 item_locations 更改为 ForeignKey 并让用户能够自行更改项目列表。我创建了另一个名为 ItemLocations 的类并将其更改为

item_locations = models.ForeignKey(ItemLocation)

如何使数据库可以保留以前的记录?Donor1 的项目位置为“Item1”,在将其更改为查找将为“item_location_id”的外键后,他们如何保留该数据?

还有,这和南迁一样简单吗?我的数据库是 MySql。

./manage.py schemamigration donate --auto
4

1 回答 1

3

最简单的方法是:

  1. 添加新的外键列。
  2. 通过使用迁移数据get_or_create
  3. 删除旧列。

update您可以通过预先计算和使用查询来加快速度。

于 2012-09-26T15:24:04.473 回答