django - ForeignKey 与抽象类的关系

标签 django python-3.x django-models

我正在尝试这样的一些:

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/

相关文章:

python - 在VS Code中调试dockerized Django会导致错误 “Timed out waiting for launcher to connect”

mysql - 同步期间外键为空(错误)

python - 在 django 中调用回调 URL 时出现 Forbidden (403) 错误

django - 关闭了运行服务器的终端窗口,但在尝试重新运行服务器时显示端口仍在使用中

python - 如何在 Gtk TextView 中添加新行?

python - pep8 是否允许在打印中使用\t

django - 自定义用户模型错误

python - Django 查询查找模型实例,其中 somefilefield == None?

python - 鹡鸰:获取上一个或下一个 sibling

python-3.x - 如何在终端或任何其他方式中使用 'su -l' 在 OpenWrt 中的用户之间切换?