Django模型和管理界面问题

时间:2011-05-17 02:10:52

标签: django django-models django-admin

我正在为我的学生准备一个考试网站。简单的网站,使用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号码。

请记住,每个问题都属于一篇论文,而且这里不是一个很多东西。

我是否必须以任何方式修改管理员,或者我做错了吗?

感谢。

2 个答案:

答案 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