riz*_*tas 5 django django-models python-3.x
我是这样的:
class F(models.Model):
class Meta:
abstract = True
class C1(F):
class C2(F):
class D(F):
pid = models.ForeignKey(Cx)
Run Code Online (Sandbox Code Playgroud)
其中Cx可以是C1或C2,但我不知道它是怎么做的.
任何人都可以引导我吗?谢谢
Python 3.3 Django 1.7
小智 2
您所要求的不可能直接实现,您不能拥有抽象模型的外键,因为抽象模型没有可链接到的数据库表。
您可以做两件事之一。要么创建F一个具体的类,这有一些缺点,但这是一个不错的方法。
class F(models.Model):
pass
class C1(F):
pass
class C2(F):
pass
class D(F):
pid = models.ForeignKey(F)
Run Code Online (Sandbox Code Playgroud)
或者使用GenericforeignKey稍微复杂一点的 a,特别是当您需要限制模型的选择时。