2016-01-21 219 views
1

我想制作投票应用程序。会有民意调查的一些问题,每个问题都有一些选择。有没有办法如何在投票中添加问题,然后在管理员表单中选择问题(如嵌套内联)?模型内的Django管理模型

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) 

回答

0

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

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

0

是的,但在一个自定义应用程序的帮助下。看看django-nested-inline包。我一直在使用它一段时间,到目前为止这么好。

class ChoiceInline(NestedTabularInline): 
    model = Choice 

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

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