基本上,我有一個模型,我創建了許多其他類共享的超類,然後每個類都有一些彼此不同的獨特功能。假設類A是超類,而類B,C和D是該類的子類。Django模型繼承和外鍵
B類和C類都可以有D類的倍數,但我已經看到最好把外鍵關係放在D類中,然後引用它的父類。現在在其他語言中,我可以簡單地說它與類A具有ForeignKey關係,然後該語言識別類的真實類型。但是,我不認爲它是如何與Python協同工作的。
追求這個問題的最佳方式是什麼?
編輯:這大致就是我的意思是......
class A(models.Model):
field = models.TextField()
class B(A):
other = <class specific functionality>
class C(A):
other2 = <different functionality>
class D(A):
#I would like class D to have a foreign key to either B or C, but not both.
從本質上講,B類和C類都有多個類D的。但是一個特定的D類只屬於其中之一。
你能解釋爲什麼你需要繼承嗎? – Evgeny 2009-07-11 22:25:56
有一個相關的問題有一些很好的答案,這可能有助於:https://stackoverflow.com/questions/1114767/django-model-inheritance-and-foreign-keys – Miranda 2017-12-07 07:28:36