【问题标题】:django redirect to viewdjango 重定向到查看
【发布时间】: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' ), "

标签: django http redirect


【解决方案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' 的反向......”
    猜你喜欢
    • 2020-07-03
    • 2017-03-30
    • 2020-03-01
    • 2020-06-05
    • 1970-01-01
    • 2012-04-30
    • 2021-05-27
    • 2021-04-14
    • 2018-08-14
    相关资源
    最近更新 更多