Rumah > Artikel > pangkalan data > Bagaimana Mengendalikan Hubungan Utama Asing dengan Model dalam Pangkalan Data Berbeza dalam Django?
Apabila bekerja dengan model Django yang disimpan dalam pangkalan data yang berbeza, isu biasa timbul dengan kunci asing . Sebagai contoh, pertimbangkan perkara berikut:
id = models.AutoField(primary_key=True) host_id = models.IntegerField() path = models.CharField(max_length=255)
class NewsModel(models.Model): # dalam pangkalan data lalai
id = models.AutoField(primary_key=True) title = models.CharField(max_length=50) link = models.ForeignKey(LinkModel)
Apabila cuba memberikan kunci asing kepada model daripada pangkalan data lain, ralat akan ditimbulkan:
< ;pra>Tidak boleh menetapkan "
Ini berlaku kerana Django tidak kini menyokong perhubungan utama asing merentas pangkalan data. Semua perhubungan utama asing mesti ditakrifkan dalam satu pangkalan data.
Untuk menyelesaikan isu ini, anda boleh sama ada mencipta penghala untuk mengarahkan anda secara eksplisit model kepada pangkalan data tertentu atau pertimbangkan untuk menggunakan sistem pengurusan pangkalan data hubungan (RDBMS) yang menyokong perhubungan silang pangkalan data. Pada masa ini, Django tidak menyediakan penyelesaian luar kotak untuk perhubungan sedemikian.
Sebagai alternatif, anda boleh cuba menggunakan tampung pada kelas ForeignKey() untuk menangani isu ini, seperti yang diterangkan dalam tiket yang dipautkan .
Atas ialah kandungan terperinci Bagaimana Mengendalikan Hubungan Utama Asing dengan Model dalam Pangkalan Data Berbeza dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!