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」になる外部キーに変更した後、そのデータをどのように保持しますか?

また、これは南への移住と同じくらい簡単ですか? 私のDBはMySqlです。

./manage.py schemamigration donate --auto
4

1 に答える 1

3

最も簡単な方法は次のとおりです。

  1. 新しい外部キー列を追加します。
  2. を使用してデータを移行しますget_or_create
  3. 古い列を削除します。

update物事を事前に計算し、クエリを使用することで、物事をスピードアップできます。

于 2012-09-26T15:24:04.473 に答える