Работа с несколькими формами на одной странице в 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)

1 ответ

Вы должны использовать django.forms.Formsets в вашем случае.

Пожалуйста, прокомментируйте, чтобы попросить дальнейших разъяснений.

ура:-)

Другие вопросы по тегам