模型中的Django管理模型

时间:2016-01-21 18:29:57

标签: python django django-models django-admin

我想制作投票应用。将有民意调查提出一些问题,每个问题都有一些选择。有没有办法如何在民意调查中添加问题,然后在管理表单中的问题(如嵌套内联)中进行选择?

class Poll(models.Model):
    poll_title = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Question(models.Model):
    poll = models.ForeignKey(Poll)   
    question_text = models.CharField(max_length=200)

class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(max_length=200)

2 个答案:

答案 0 :(得分:0)

是的,但在自定义应用的帮助下。看一下django-nested-inline包。我已经使用了一段时间,到目前为止一直很好。

class ChoiceInline(NestedTabularInline):
    model = Choice

class QuestionInline(NestedTabularInline):
    model = Question
    inlines = [ChoiceInline, ]

class PollAdmin(NestedModelAdmin):
    model = Poll
    inlines = [QuestionInline, ]

答案 1 :(得分:0)

一般来说,管理站点非常适合开发人员检查当前站点数据并调整已存在的内容。但是,当您尝试创建应用程序功能时,例如创建整个民意调查,那就是您要开始编写自己的代码的地方。您的成品不应该使用管理站点,就像最终用户永远不应该直接与数据库交互一样。

此时,我会创建一个网站的一部分,要求管理员(或工作人员或您希望创建的任何权限组)访问权限,并设置自己的表单以创建民意调查,问题和答案,以及正确链接它们以在数据库中创建正确的Poll,Question和Choice对象。