私はmanaged = Falseのモデルを持っています。テストのためにDjangoテスト中に、managed = Falseで表を作成する方法
: - https://docs.djangoproject.com/en/dev/ref/models/options/#managedは、次の書類
DatabaseError: no such table: SAMPLE_SAMPLE_MODEL
Djangoのドキュメント:
class SampleModel(models.Model): apple = models.CharField(max_length=30) orange = models.CharField(max_length=30) class Meta: managed = False
は、私は、テストを実行すると、しかし私が得る、SampleModelをを作成し、ユニットテストを持っています管理されたモデル= Falseの場合、 までは、テスト設定の一部として正しいテーブルが作成されていることを確認してください。
テストセットアップ中に実際にテーブルを作成するにはどうすればよいですか?あるいは、私がテストを実行しているときに、このモデルがテストの期間中「管理=真」であるようにするにはどうすればよいですか?
実際のアプリケーションでは、このモデルは実際にはデータベースのビューによってバックアップされています。しかし、テスト中は、これをテーブルとして扱い、そこにテストデータを挿入することができます。
Django 1.11では動作しません(テストデータベースを作成するために移行を使用し、モデル定義に続いて 'managed = False'を設定します)。 https://stackoverflow.com/a/37060122/462655で提案されている解決策はDjango 1.11のために働きます – msonsona
FWIWこれはDjango 1.10.7で動作しません(おそらくは1.10.xシリーズ全体ではありますが、 。 –
元のテストランナーのアイデアへのアップデートはhttps://dev.to/patrnk/testing-against-unmanaged-models-in-djangoから入手できます – shadi