django重定向查看

use*_*805 26 django redirect http

我有一个视图,我想做一些东西,然后重定向到另一个视图与成功消息.我想要重定向到的方法的签名是

quizView(request, quizNumber, errorMessage=None, successMessage=None): 
Run Code Online (Sandbox Code Playgroud)

我重定向到该视图的尝试如下所示:

return redirect(quizView, quizNumber=quizNumber, errorMessage=None, successMessage="Success!")
Run Code Online (Sandbox Code Playgroud)

我已经尝试了大多数命名和未命名的参数的组合,我无法让它做我想要的.有没有办法让这项工作?

此外,我尝试使用第一个视图返回第二个视图,但后来URL仍然是旧视图中的位置,而不是显示为重定向.

谢谢!

Dan*_*man 35

您没有为URL指定名称,因此您需要使用视图函数的整个路径.此外,该URL不带errorMessagesuccessMessage参数,因此将它们置于reverse通话中将失败.这就是你想要的:

return redirect('quizzes.views.quizView', quizNumber=quizNumber)
Run Code Online (Sandbox Code Playgroud)

  • 只是为了稍微改进一下答案 - 'quizzes.views.quizView' 应该是来自 urls.py 的 URL 名称 (4认同)

Siv*_*lam 5

您可以尝试https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect中给出的示例2

  • 确保它在给定视图上执行"反向"操作.
  • 您的视图名称应该用单引号括起/