29

我有一个视图,我想在其中做一些事情,然后用成功消息重定向到另一个视图。我要重定向到的方法的签名是

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

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

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

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

另外,我尝试只用第一个视图返回第二个视图,但是 URL 仍然是它在旧视图中的位置,而不是看起来好像它已经重定向了。

谢谢!

4

3 回答 3

41

你没有给你的 URL 一个名字,所以你需要使用视图函数的整个路径。另外,该 URL 不接受errorMessagesuccessMessage参数,因此将它们放入reverse调用将失败。这就是你想要的:

return redirect('quizzes.views.quizView', quizNumber=quizNumber)
于 2012-11-11T15:19:18.663 回答
6

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

  • 确保它在给定视图上执行“反向”操作。
  • 您的视图名称应包含在单引号/
于 2012-11-11T05:36:32.200 回答
-2

你应该参考这个https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#redirect

用于重定向内部视图。您可以使用为视图创建 url 进行重定向,也可以在视图内调用,这非常容易。

于 2017-02-05T07:14:45.027 回答