Django管理员有多重遗产

时间:2017-08-31 06:39:31

标签: django admin models multiple-inheritance

我有以下课程

class master(models.Model):
    topic = models.ManyToManyField('Topic')

class child1(master):
    question = models.CharField(max_length=100, null=False)

class child2(master):
    answer_display = models.CharField(max_length=300, null=False)

在django admin中,我希望添加一个对象child1,同时添加一个对象child2,它具有parrent模型给出的相同ID。

我该怎么做?

编辑: 如果我创建一个对象child1和一个对象child2,我没有我想要的相同主ID

2 个答案:

答案 0 :(得分:0)

我对你想要的东西感到有点困惑,但是如果你想把2个“孩子”链接到“父母”,你可以在两个孩子上创建一个ForeignKey字段并使用它链接到“父”模型。

此外,如果您希望child1和child2模型从master模型继承,则abstract = True中必须有class Meta

class master(models.Model):
    topic = models.ManyToManyField('Topic')

    class Meta:
        abstract = True

class child1(master):
    question = models.CharField(max_length=100, null=False)

答案 1 :(得分:0)

这不是组织我的模型的好方法

我改变了类似的东西

class master(models.Model):
    topic = models.ManyToManyField('Topic')

class child1(child2):
    question = models.CharField(max_length=100, null=False)

class child2(master):
    answer_display = models.CharField(max_length=300, null=False)