在Django中的单个页面上使用多个表单

时间:2014-12-02 11:08:15

标签: django python-2.7 django-forms django-1.7

我是Django的新手,我很难绕过如何处理"嵌套"模板中的表单以及如何相应地处理这些表单。我正在创建类似于教程的轮询应用程序,但更复杂。我有多个模型(民意调查,问题,选择,投票)。民意调查包含许多问题,一个问题包含许多选择。

我希望允许用户一次查看民意调查中的所有问题,并通过从每个问题的选择集中选择一个选项来对每个问题进行投票。在用户为每个问题选择一个选项后,他们立即提交所有投票并处理它们以创建投票对象。

我真的很想知道如何做到这一点。任何帮助将不胜感激。

以下是我的模型设置方式:

models.py

class Poll(models.Model):
    name = models.CharField(max_length=255, default="Unnamed Poll")
    key = models.CharField(max_length=16, blank=True, editable=False, unique=True, db_index=True, null=True)
    instructor = models.ForeignKey(User)
    course = models.ForeignKey(Course)
    active = models.BooleanField(default=False)
    anonymous = models.BooleanField(default=True, help_text="Allow votes to be anonymous?")

class Question(models.Model):
    question_text = models.CharField(max_length=255, verbose_name='Poll Question')
    poll = models.ForeignKey(Poll)

class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(max_length=255, verbose_name='Response Choice')

class Vote(models.Model):
    question = models.ForeignKey(Question)
    choice = models.ForeignKey(Choice)
    student = models.ForeignKey(User)

1 个答案:

答案 0 :(得分:0)

你应该在你的case中使用django.forms.Formsets。关于formsets here

请发表评论,要求进一步澄清。

欢呼: - )