ホームページ >データベース >mysql チュートリアル >Django は異なるデータベースにわたる外部キーを処理できますか?
Django ユーザーが異なるデータベース間で外部キーにアクセスすると、エラーが発生する可能性があります。このエラーは、あるデータベースのモデルが別のデータベースのモデルを参照しようとすると発生します。
この例では、LinkModel は次のように定義されています。 NewsModel はデフォルトのデータベースで定義されていますが、'urls' データベースです。
LinkModel インスタンスを次のデータベースに割り当てようとすると、エラーが発生します。 NewsModel オブジェクトの外部キー フィールド。エラー メッセージは、割り当てられたインスタンスが 'urls' データベース上にあり、NewsModel オブジェクトが 'default' データベース上にあることを示しています。
によるとDjango のドキュメントによると、外部キーと多対多のリレーションシップではデータベース間のリレーションシップがサポートされていません。この制限は、互換性の問題と潜在的なデータ整合性の問題のために課せられています。
文書化された制限に加えて、Django のForeignKey クラスのバグバージョン 1.2、1.3、および 1.4rc1 でもこの問題が発生する可能性があります。
考えられる解決策の 1 つは、ForeignKey のバグを解決するパッチを適用することです。クラス。このパッチは、Django チケット システムにあります。
このパッチを適用すると、異なるデータベース間で外部キー関係を確立できる可能性があります。ただし、これは正式にサポートされている機能ではなく、他の潜在的な問題が発生する可能性があることにユーザーは注意する必要があります。以上がDjango は異なるデータベースにわたる外部キーを処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。