繁体   English   中英

如何以Django-admin内联形式显示子类模型?

[英]How to show subclass model in Django-admin inline form?

我在models.py得到了一些模型,如下所示:

class QuestionPackage(models.Model):
    """Question Package"""


class Question(models.Model):
    question_package = models.ManyToManyField(QuestionPackage, blank=True)
    name = models.CharField(max_length=128)
    answer = models.TextField()


class Reading(Question):
    """Reading Question"""


class Writing(Question):
    """Writing Question"""

(阅读和写作之间有一些区别,但是我忽略了。)

并在admin.py

class ReadingInline(admin.TabularInline):
    model = Reading.question_package.through


class WritingInline(admin.TabularInline):
    model = Writing.question_package.through


class QuestionPackageAdmin(admin.ModelAdmin):
    inlines = [
        ReadingInline, WritingInline,
    ]

我发现在question package管理页面的内联表单中,“ Reading和“ Writing显示为Question ,我无法彼此区分。 而且它们没有编辑按钮。

在这种情况下,应该如何让管理员显示子类模型? 在此处输入图片说明

那么在这种情况下,超类Question应该是一个抽象类:

class Question(models.Model):
    question_package = models.ManyToManyField(QuestionPackage, blank=True)
    name = models.CharField(max_length=128)
    answer = models.TextField()

    class Meta:
        abstract = True

https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes

此处的更多信息Django管理界面不使用子类的__unicode __()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM