基本上,我有一个模型,我创建了许多其他类共享的超类,然后每个类都有一些彼此不同的独特功能。假设类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