Django перенаправить на просмотр
У меня есть одно представление, что я хочу сделать что-то, а затем перенаправить на другое представление с успешным сообщением. Подпись метода, который я хочу перенаправить, - это
quizView(request, quizNumber, errorMessage=None, successMessage=None):
и моя попытка перенаправления на это представление выглядит следующим образом:
return redirect(quizView, quizNumber=quizNumber, errorMessage=None, successMessage="Success!")
Я пробовал каждую комбинацию именованных и неименованных параметров, и я не могу заставить его делать то, что я хочу. Есть ли способ сделать эту работу?
Кроме того, я попытался просто вернуть второе представление с первым, но затем URL-адрес все еще находится там, где он был в старом представлении, вместо того, чтобы появляться, как если бы он перенаправлялся.
Спасибо!
Ответы
Ответ 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-адрес для просмотра или вызова внутри представления.