2014-12-02 3 views
0

Я новичок в Django, и мне нелегко обернуть голову вокруг того, как обращаться с «вложенными» формами в шаблоне и как обрабатывать эти формы соответственно. Я создаю приложение для опроса, подобное учебнику, но более сложное. У меня есть несколько моделей (опрос, вопрос, выбор, голосование). Опрос содержит много вопросов, вопрос содержит много вариантов.Работа с несколькими формами на одной странице в 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) 
+0

Можете ли вы показать код, кроме models.py, что вы написали, чтобы достичь того, что вы пытаетесь сделать? – Ymartin

ответ

0

Вы должны использовать django.forms.Formsets в вашем case.Read о FormSets here

Пожалуйста Комментарий попросите дать дополнительные разъяснения.

ура :-)

Смежные вопросы