Bu yüzden, başka bir tabloya yabancı anahtar içeren tek bir tablo oluşturmayı ve anahtarın hangi tabloya ait olması gerektiğini başka bir alan "türü" kullanarak oluşturmayı düşündüğüm bir sorum var. .Django, birçok tablo için bir yabancı anahtar modelini kullanıyor
class Status(Models.model):
request = models.ForeignKey("Request1", "Request2", "Request3")
request_type = models.IntegerField()
...Some status related data
class Request1(Models.model):
...Some data
class Request2(Models.model):
...Some other data
Class Request3(Models.model):
...different data
Sorum şu ki, böyle bir yabancı anahtar tanımlamak mümkün mü? benim aklıma başka bir çözüm bu
class Status(Models.model):
request1 = models.ForeignKey("Request1")
request2 = models.ForeignKey("Request2")
request3 = models.ForeignKey("Request3")
...Some status related data
class Request1(Models.model):
...Some data
class Request2(Models.model):
...Some other data
Class Request3(Models.model):
...different data
gibi Modelimin tanımlamak oldu Ama bunu yaparsam bu şekilde sadece 1 yabancı anahtar verileri olmasına izin ve diğer söylüyor django üzerinden bir kısıtlamayı tanımlamak mümkündür iki null olmalı? veya db tarafında bu kısıtlamayı kesin olarak ayarlamak zorunda mıyım (postgres kullanıyorum) dbgo'yu db oluşturduğunda bunu yapmasını söylemek istiyorum ki her zaman birini hatırlamak zorunda değilim db'yi yeniden oluşturur.
Herhangi bir girdi veya öneri çok takdir edilecektir. Bu fikirlerin hiçbiriyle evli değilim, bu yüzden aynı etkiyi elde etmenin başka bir akıllı yolu varsa, bunu duymaya devam ediyorum. Zaman ayırdığın için teşekkürler.
Düzenleme: Sen Django contentypes çerçevesini kullanmalısınız django 1.7.10
sadece istiyorsunuz İhtiyaçlarınız için https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-relations şöyle bir şey olabilir:
burada genel bir ilişki için bir örnek var Üçüncüsü FK olmak mı? –
Maalesef, her durum yalnızca bir isteğe bağlantı vermelidir. – mingle