3

フィクスチャをロードする前に contenttypes をリセットしました ( Django でフィクスチャをロードするときの contenttypes に関する問題 を参照してください)。

しかし、contenttypes をリセットできませんでした:

...project_dir > manage.py リセット contenttypes

データベースのリセットを要求しました。これにより、データベース「my_database」内の「contenttypes」アプリケーションのデータが完全に破棄されます。これを実行してもよろしいですか?

「はい」を入力して続行するか、「いいえ」を入力してキャンセルします:はい

エラー: エラー: contenttypes をリセットできませんでした。考えられる理由:

  • データベースが実行されていないか、正しく構成されていません。
  • 少なくとも 1 つのデータベース テーブルが存在しません。
  • SQL が無効でした。

ヒント: 「django-admin.py sqlreset contenttypes」の出力を見てください。それが、このコマンドが実行できなかった SQL です。

完全なエラー: (1217、「親行を削除または更新できません: 外部キー cons traint が失敗しました」)

どんな助けでも大歓迎です。ありがとうございました!

4

1 に答える 1

0

あなたが投稿した質問には別の答えがあります-器具には自然キーを使用してください。

「親行を削除または更新できません:外部キー制約が失敗しました」というエラーは、その行を指す別のオブジェクトがあるため、コンテンツタイプの行を削除できないことを意味します。たとえば、空白のない一般的な外部キー関係がある場合です。

コンテンツタイプアプリを本当にリセットする必要がある場合は、これに必要なSQLコマンドを取得し、CASCADEステートメントを使用するように変更できます。ただし、これはコンテンツタイプだけでなく、コンテンツタイプを指す別のテーブルの行も削除するため危険です。

したがって、自然キーを使用してフィクスチャを再作成することをお勧めします。

于 2012-09-06T13:44:59.140 に答える