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