2012-05-10 21 views
2

Django Southを使用してdatamigrationを作成しても(まだ実行していないときは)、schemamigrationを作成し、そのマイグレーションに関与したモデルに新しいフィールドを追加しますdatamigrationmanage.py migrateタスクが失敗します。Django South:データマイグレーション後のモデルフィールドの追加

models.pyファイルのクラス定義には、datamigrationが認識できない新しいフィールド定義が含まれているためです。

これを防ぐ方法はありますか?

+0

を使用する必要があります。.. –

+0

それは手動に新しいフィールド(複数可)を追加することですデータマイグレーションファイルの辞書をモデル化しますか? –

+0

いいえ。最初の移行後に移行に使用した一連のコマンドがあります。そのため、テーブルの変更が認識されます。 –

答えて

6

南データマイグレーションでは、モデルへの新しい参照が直接必要です。すなわち

from myapp.models import MyModel # <- This is bad in datamigration 
MyModel.objects.filter(...) 

あなたは移行はテーブルの新しいフィールドを認識させる方法はありORM obbject

orm.MyModel.objects.filter(...) <- This is good. 
+1

これは正しい答えです、ありがとう!完璧に働いた。 –

+0

ありがとう - とても便利です! – khoomeister

+0

華麗な答え。ありがとうございました! –

関連する問題