異なるデータベースに保存された Django モデルを操作する場合、外部キーに関する一般的な問題が発生します。たとえば、次のことを考えてみましょう。
class LinkModel(models.Model): # in 'urls' データベース</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">id = models.AutoField(primary_key=True) host_id = models.IntegerField() path = models.CharField(max_length=255)
class NewsModel(models.Model): # inデフォルトのデータベース
id = models.AutoField(primary_key=True) title = models.CharField(max_length=50) link = models.ForeignKey(LinkModel)
別のデータベースからモデルに外部キーを割り当てようとすると、エラーが発生します:
< ;pre>「
これは、Django が現在、データベース間の外部キー関係をサポートしています。すべての外部キー関係は、単一のデータベース内で定義する必要があります。
この問題を解決するには、ルーターを作成して明示的にルーティングを行うことができます。モデルを特定のデータベースに適用するか、データベース間の関係をサポートするリレーショナル データベース管理システム (RDBMS) の使用を検討してください。現在、Django はそのような関係に対するすぐに使用できるソリューションを提供していません。
または、リンクされたチケットで説明されているように、ForeignKey() クラスにパッチを適用してこの問題に対処してみることもできます。 .
以上がDjango で異なるデータベース内のモデルとの外部キー関係を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。