вопрос по обработке запросов django

Всем привет. Помогите понять. Учебная задача. Есть вопросы и ответы. На странице вопроса выводить связанные ответы. Сохранять в отдельную модель ответы. Для идентификации пользователя использовать сессию. На странице будет вопрос, связанные с ним варианты ответов и возможность выбора. Нужно подавать вопросы и записывать ответ с вопросом в др модель.

  1. Создам три модели. Вопрос(1 текстовое поле), варианты ответов(текстовое поле и поле, связанное по fk с вопросами), выбранный ответ и вопрос(поле fk вопросы, поле fk ответы, поле fk User()). Верно? Создам форму на основе 3 модели, с полем, кот связано по fk с вариантами ответов. Так?

  2. Сложность для меня в том, как реализовать вью правильно, чтобы пользователю показывался вопрос и варианты ответов (кот он может выбрать). Затем этот выбр, пост запрос, нужно обработать и сохранить в 3 модель. К примеру, первое вью обрабатывает гет запрос, получает вопросы из модели Вопрос или из модели Варианты ответов? Вторая вью, обрабатывает пост запрос, выбранный пользователем ответ. Мне не понятно. Как сделать так, чтобы выбранные ответ и вопрос, сохранялись в 3 модель, а затем пользователю подавался след вопрос и варианты ответов и т.д. пока в бд есть данные?

    class Question(models.Model):
    question_text = models.CharField(verbose_name='Вопрос', max_length=200)
    
    class Choice(models.Model):
    choice_text = models.CharField(max_length=200)
    next_question = models.ForeignKey(Question, on_delete=models.CASCADE)
    
    class ChoiceAnswer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    answer = models.ForeignKey(Choice, on_delete=models.CASCADE)
    user_id = models.ForeignKey(User, on_delete=models.CASCADE)
    
    class ChoiceForm(forms.ModelForm):
        class Meta:
            model = ChoiceAnswer
            fields = 'answer'
    
    def questions(request, question_id):
    question = Question.objects.get(pk=question_id)
    context = {'question': question}
    return render(request, 'poll/index.html', context)
    

Ответы (0 шт):