2

アプリには多くのモデルがあるため、モデル パッケージのサブパッケージにそれらを配置します。つまり、Cheddarモデルはmodels.Cheddarではなく に配置されmodels.cheese.Cheddarます。

行を含むこの回答models/__init__.pyに従って作成したにもかかわらず、南部のデータ移行でこれらのモデルにアクセスできないようです。from cheese import *

私のデータ移行ファイルでは、この行for cheddar in orm.Cheddar.objects.all():によって次のエラーが引き続き発生します。

AttributeError: The model 'Cheddar' from the app 'core' is not available in this migration. (Did you use orm.ModelName, not orm['app.ModelName']?)

代わりに使用しようとするorm['core.models.cheese.Cheddar']と、次のエラーが発生します。

KeyError: "The model 'cheddar' from the app 'core' is not available in this migration."

この問題を回避する方法を知っている人はいますか?

4

1 に答える 1

1

結局のところ、問題は、CheddarモデルがDataMigrationインスタンスのmodelsプロパティにリストされていないという事実にありました。

class Migration(DataMigration):
    # ...

    models = {
        # ...
    }

そこに正しいモデル定義を追加すると(これは以前の移行にありました)、データ移行は機能しました。

于 2013-10-16T13:06:01.223 に答える