Подтвердить что ты не робот

Django перенаправить на просмотр

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

quizView(request, quizNumber, errorMessage=None, successMessage=None): 

и моя попытка перенаправления на это представление выглядит следующим образом:

return redirect(quizView, quizNumber=quizNumber, errorMessage=None, successMessage="Success!")

Я пробовал каждую комбинацию именованных и неименованных параметров, и я не могу заставить его делать то, что я хочу. Есть ли способ сделать эту работу?

Кроме того, я попытался просто вернуть второе представление с первым, но затем URL-адрес все еще находится там, где он был в старом представлении, вместо того, чтобы появляться, как если бы он перенаправлялся.

Спасибо!

4b9b3361

Ответ 1

Вы не указали свой URL-адрес, поэтому вам нужно использовать весь путь к функции просмотра. Кроме того, этот URL-адрес не принимает параметры errorMessage или successMessage, поэтому их включение в вызов reverse завершится с ошибкой. Это то, что вы хотите:

return redirect('quizzes.views.quizView', quizNumber=quizNumber)

Ответ 2

Можете ли вы попробовать пример 2, указанный в https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect

  • Удостоверьтесь, что он имеет значение "reverse" для данного вида.
  • Ваше имя вида должно быть заключено в одинарные кавычки /

Ответ 3

Вы должны обратиться к этому https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#redirect

Для перенаправления внутреннего вида. Его очень легко либо перенаправить, создав URL-адрес для просмотра или вызова внутри представления.