django 重定向到查看

Posted

技术标签:

【中文标题】django 重定向到查看【英文标题】:django redirect to view 【发布时间】:2012-10-30 23:55:39 【问题描述】:

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

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

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

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

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

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

谢谢!

【问题讨论】:

该视图的 urls.py 条目是什么样的? 我试图重定向到的视图的 url 条目看起来像 " (r'^quizzes/(?P\d*)$', 'quizzes.views.quizView' ), " 【参考方案1】:

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

用于重定向内部视图。使用创建视图的 url 重定向或在视图内调用也很容易。

【讨论】:

【参考方案2】:

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

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

【讨论】:

只是为了稍微改进一下答案 - 'quizzes.views.quizView' 应该是来自 urls.py 的 URL 名称 没有网址名有什么办法吗?【参考方案3】:

你能试试https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect中给出的例子2

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

【讨论】:

我尝试使用单引号,结果相同。 “确保它在给定视图上执行'反向'”是什么意思。我不认为我正在这样做。 创建一个简单的示例应用程序并将其上传到 github。我们会尽力检查和帮助 这是我在执行所有关键字参数时得到的错误 "Reverse for 'quizView' with arguments '()' 和关键字参数 ''successMessage': 'Students Successfully added!', 'errorMessage ': 无,'quizNumber': u'2'' 未找到”。如果我做未命名的参数,我会得到相同的“'quizView' 的反向......”

以上是关于django 重定向到查看的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义错误消息的 Django 重定向

当我有“下一个”网址时,如何禁用网址重定向? - 姜戈

POST请求后如何重定向到Django中的上一页

django 重定向

django重定向导致重定向到下一页,但然后返回原始?

Django页面重定向