私は私のプロジェクトの「API」を生成するModelSerealizerを使用していますし、次のコードで説明したように、私はcasa = CasaLegislativa.objects.first()
属性を持っている:他のアプリの後にアプリを実行するための移行順序を変更するにはどうすればよいですか?
Django.db.utils.ProgrammingError: relation "base_casalegislativa" does not exist
:私は、私は次のエラーを取得する
python manage.py migrate
を実行すると
Class SessaoPlenariaSerializer (serializers.ModelSerializer):
# ...
casa = CasaLegislativa.objects.first()
# ...
このエラーは、データベース内のCasaLegislativaクラスのテーブルを作成する前に、SessionPlenariaSerializerクラスのCasaLegislativa.objects.first()
メソッドへの呼び出しが呼び出されたために発生します。
アプリ 'api'にはモデルはなく、移行もありません(他の移行に依存することはできません)が最初にアルファベット順にチェックされています。このアプリの「api」が他のアプリの後に実行されるように、移行の順序を変更するにはどうすればよいですか?
問題を解決するのには役立ちませんが、アプリ名を呼び出すことで移行対象を指定できます。 ./manage.py YourAppNameを移行します。 – hansTheFranz
これは移行順序とは関係なく、すべてのアプリケーションが移行される前に読み込まれます。この時点ではクエリを実行できません。クエリをメソッドに移動するか、遅延評価されたメソッドに置き換える必要があります。 – knbk
@kbnk私はこのように解決しました。しかし、醜いハックのようだ。 –