我正在尝试这样的一些:
class F(models.Model):
class Meta:
abstract = True
class C1(F):
class C2(F):
class D(F):
pid = models.ForeignKey(Cx)
其中 Cx 可以是 C1 或 C2,但我不知道该怎么做。
有人可以带领我吗?
谢谢
python 3.3
Django 1.7
最佳答案
你问的问题是不可能直接的,你不能有一个抽象模型的 ForeignKey,因为抽象模型没有要链接的数据库表。
你可以做两件事中的任何一件。要么制作F
一个具体的类,这有一些缺点,但它不是一个坏方法。
class F(models.Model):
pass
class C1(F):
pass
class C2(F):
pass
class D(F):
pid = models.ForeignKey(F)
或使用
GenericforeignKey
这有点复杂,特别是如果您需要限制模型的选择。
关于django - ForeignKey 与抽象类的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28056593/