Работа с несколькими формами на одной странице в 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 в вашем случае.
Пожалуйста, прокомментируйте, чтобы попросить дальнейших разъяснений.
ура:-)