Отображение ответов в форме Django

Я не смог найти решение этой проблемы на сайте Django, в настоящее время у меня есть форма, как показано на рисунке:

В моем models.py он сохраняется следующим образом:

Я хочу использовать ответы из формы и создать новую форму, используя ответы этой формы в качестве вопросов для нее, по сути, воссоздавая эту форму и повторно используя поля, но изменяя поля и отображая их на уникальном URL

class InitialForm(forms.Form):
    Teacher_Name = forms.CharField(label='Teacher Name')
    Test_Name = forms.CharField(label='Label this test')
    Subject = forms.CharField(label = 'Subject')
    Question = forms.CharField(label = 'What is the first question?')
    Topic = forms.CharField(label = 'What topic is this on?')
    Option1 = forms.CharField(label = 'What is the first option?')
    Option2 = forms.CharField(label = 'What is the second option?')
    Option3 = forms.CharField(label = 'What is the third option?')
    Option4 = forms.CharField(label = 'What is the fourth option?')
    Answer = forms.CharField(label = 'Which option is the correct option?', widget=forms.Select(choices=Options))

class Questions(models.Model):
    testID = AutoSlugField(unique=True)
    test_label = models.CharField(max_length=1000)
    teacherName = models.CharField(max_length=1000, null = True)
    studentID = models.ForeignKey(Student, on_delete=models.CASCADE, null = True)
    Subject = models.CharField(max_length=1000)
    Q1 = models.CharField(max_length=1000, null = True)
    Topic1 = models.CharField(max_length=1000)
    Option1_Q1 = models.CharField(max_length=1000)
    Option2_Q1 = models.CharField(max_length=1000)
    Option3_Q1 = models.CharField(max_length=1000)
    Option4_Q1 = models.CharField(max_length=1000)
    AnswerQ1 = models.CharField(max_length=1000)
    ``

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

Я бы предположил, что есть что-то вроде Test, у которого есть Questions, и что каждый Student будет суммировать Answers до Test.

<<<Объекты

Question будут иметь отношение ForeignKey к объекту Test. Объекты Answer будут иметь отношение ForeignKey как к Test, так и к Student.

Теперь вам предстоит написать целый набор представлений. Это будут CreateView и UpdateView (и, возможно, DeleteView), которые (аутентифицированный!) преподаватель будет использовать для манипулирования объектами Question для конкретного Test. Текст Question и детали варианта будут показаны каждому студенту, проходящему тест; студент ответит своим выбором правильного ответа, который будет записан как объект Answer

В форму ответа ученика будет введено только одно поле: выбранный учеником ответ (от A до D, или от 1 до 4?) То, что увидит ученик, будет отображением объекта Question: представление только для чтения данных вопроса, которые были введены учителем.

Вполне возможно, что после того, как вы освоитесь, вы будете вводить Teacher и Course объекты (несколько Test объектов, связанных с одним Course. один или несколько Teacher объектов, связанных с одним Course, ...)

Оппозиционно, но это именно та проблема, которую упрощают представления на основе классов, так что используйте их.

Вернуться на верх