Не удается заставить перенаправление Django работать должным образом в постраничном представлении
У меня есть пагинационное представление, которое служит для голосования, похожее на официальный учебник Django для начинающих, но с пагинацией.
Я заметил, что когда я отправляю и перенаправляю на следующую страницу, т.е. следующий вопрос, когда я отправляю на этой странице (которая равна 2), она перенаправляет обратно на страницу 1 вместо страницы 3
def vote(request):
questions = Question.objects.all()
paginator = Paginator(questions, 1)
try:
page_number = request.GET.get('page', 1)
print('current_page: ', page_number)
page_obj = paginator.get_page(page_number)
question = page_obj.object_list.get() # object list contains the objects in the page
selected_choice = question.choice_set.get(pk=request.POST['choice'])
# increment selected choice and save
selected_choice.vote += 1
selected_choice.save()
url = f"{reverse('vote')}?page={page_obj.next_page_number()}"
return HttpResponseRedirect(url)
except (KeyError, Choice.DoesNotExist):
return render(request, 'vote.html', {
'page_obj': page_obj,
'error_message': "You didn't select a choice.",
})
except PageNotAnInteger:
page_obj = paginator.get_page(1)
except EmptyPage:
page_obj = paginator.get_page(paginator.num_pages)
context = {
'questions': questions,
"page_obj": page_obj
}
return render(request, 'vote.html', context)
URL: localhost:8000/vote/ в первый момент localhost:8000/vote/?page=2 next Затем вместо localhost:8000/vote/?page=3 он возвращается к localhost:8000/vote
Навигация в шаблоне для вида работает как ожидалось, но это не так. Заранее спасибо