我正在为我的学生准备一个考试网站。简单的网站,使用Django的管理界面来创建问题文件。
我有以下模特:
class Paper(models.Model):
name = models.CharField(max_length=2000, unique=False)
short_desc = models.TextField(unique=False)
class Question(models.Model):
text = models.TextField(unique=False)
order = models.IntegerField(unique=True)
paper = models.ForeignKey(Paper, unique=False)
在向论文添加问题时,我希望我能够通过单击“+”符号或某种“添加更多问题”等来添加Paper的管理界面本身的问题。
在我目前的设置中,我必须首先创建论文,然后进入问题界面并逐个添加它们(天堂禁止)如果我丢失了order
号码。
请记住,每个问题都属于一篇论文,而且这里不是一个很多东西。
我是否必须以任何方式修改管理员,或者我做错了吗?
感谢。
答案 0 :(得分:4)
管理界面有能力 在与...相同的页面上编辑模型 父模型。这些被称为 内联。见InlineModelAdmin
创建QuestionInline
:
class QuestionInline(admin.TabularInline):
model = Question
并在PaperAdmin
添加:
class PaperAdmin(admin.ModelAdmin):
...
inlines = [
QuestionInline,
]
答案 1 :(得分:1)
InlineModelAdmin就是你所追求的。有关详细信息,请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects