I got some models in models.py
like this:
我在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"""
(There are some differences between reading and writing ,but I omit that.)
(阅读和写作之间存在一些差异,但我省略了。)
and in admin.py
:
在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,
]
I found that in question package
admin page's inline form, both Reading
and Writing
shows like Question
, I can't tell one from another. and they have no edit button.
我发现问题包管理页面的内联形式,阅读和写作都显示像问题,我不能告诉彼此。他们没有编辑按钮。
What should I do to let admin shows subclass model in this situation?
在这种情况下,我该怎么做让admin显示子类模型?
1 个解决方案
#1
1
Then in this case the super class Question should be an abstract class:
那么在这种情况下,超类问题应该是一个抽象类:
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
https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes
More info here Django Admin Interface Does Not Use Subclass's __unicode__()
更多信息Django Admin Interface不使用子类的__unicode __()
#1
1
Then in this case the super class Question should be an abstract class:
那么在这种情况下,超类问题应该是一个抽象类:
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
https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes
More info here Django Admin Interface Does Not Use Subclass's __unicode__()
更多信息Django Admin Interface不使用子类的__unicode __()