У меня есть страница с тремя раскрывающимися списками 1. Выберите тип вопроса , 2. Выберите Отметки , 3. Доступные теги , которые являются частью QuestionFilterForm . И затем у меня есть другая форма под названием QuestionPaperForm на той же странице внутри <form>
. Когда я выбираю тип вопроса, список вопросов отображается на той же странице после запроса на публикацию. И затем я могу выбрать один или несколько из списка новых вопросов, который представляет собой еще один запрос POST (чтобы добавить эти вопросы в другой список). После второго запроса POST , когда я пытаюсь обновить sh страницу, chrome показывает изменение повторной отправки формы. В этом случае я подумал о перенаправлении после POST , но затем с перенаправлением я не могу сохранить параметры, выбранные в раскрывающемся списке. Приходится каждый раз выбирать варианты и просматривать список вопросов. Я не могу придумать хорошего logi c, где я мог бы справиться с проблемой перенаправления.
Мое мнение следующее
def design_questionpaper(request, course_id, quiz_id, questionpaper_id=None):
context = {}
user = request.user
if quiz_id:
quiz = get_object_or_404(Quiz, pk=quiz_id)
if questionpaper_id is None:
question_paper = QuestionPaper.objects.get_or_create(
quiz_id=quiz_id
)[0]
else:
question_paper = get_object_or_404(
QuestionPaper, id=questionpaper_id, quiz_id=quiz_id
)
questions, state = None, None
marks = request.POST.get('marks', None)
state = request.POST.get('is_active', None)
question_type = request.POST.get('question_type', None)
if request.method == "POST":
filter_form = QuestionFilterForm(request.POST, user=user)
if question_type:
questions = _get_questions(user, question_type, marks)
if questions:
questions = _remove_already_present(questionpaper_id, questions)
if 'add-fixed' in request.POST:
return redirect(
'yaksh:designquestionpaper',
course_id=course_id,
quiz_id=quiz_id,
questionpaper_id=questionpaper_id
)
# question_paper.update_total_marks()
# question_paper.save()
# context['qpaper'] = question_paper
# context['questions'] = questions
else:
filter_form = QuestionFilterForm(user=user)
fixed_questions = question_paper.get_ordered_questions()
context['qpaper'] = question_paper
context['questions'] = questions
context['fixed_questions'] = fixed_questions
context['filter_form'] = filter_form
context['course_id'] = course_id
context['state'] = state
return render(request, 'yaksh/design_questionpaper.html', context)