Я пытаюсь создать приложение, подобное анкете. Я уже строить models.py
, который выглядит следующим образом:Анкета Анкета - Django
# models.py
class QuestionSet(models.Model):
name = models.CharField(max_length=100)
description = models.TextField(blank=True)
def __str__(self):
return "{} Question Form".format(self.name)
class Question(models.Model):
q_set = models.ForeignKey(QuestionSet,
on_delete=models.CASCADE,
related_name='questions')
text = models.CharField(max_length=100)
def __str__(self):
return self.text
class Answer(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='answers')
question = models.ForeignKey(Question)
text = models.CharField(max_length=100)
def __str__(self):
return "Answer to {}".format(self.question)
Однако я борюсь придумать форму, которая будет корректно отображать это на переднем конце, а затем подтвердить введенные данные.
Я попытался отобразить текст вопроса из моей модели Question
и добавить поля ввода ниже, все это без использования Django Forms. Хотя это может показаться, что оно работает, оно поднимает проблему проверки данных и связывания данных с определенным вопросом (скрытое поле с значением идентификатора вопроса).
Есть ли способ, где я могу создать форму, с несколькими Question
s (все принадлежащие к одной и той же QuestionSet
), который будет отображать поле только для чтения (текстовое поле Question
с моделью) и соответствующее поле ввода под (текстовое поле Answer
Модель)?