Я пытаюсь создать приложение, похожее на анкету. Я уже построил models.py
, который выглядит так:
# 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
(все они принадлежат одному и тому же QuestionSet
), которая будет отображать поле только для чтения (текстовое поле Question
модели) и связанное поле ввода ниже (текстовое поле Answer
модели)?