gpt4 book ai didi

python - 带参数的django redirect()

转载 作者:太空狗 更新时间:2023-10-29 21:16:12 26 4
gpt4 key购买 nike

已经有几个类似的问题被问到,但我花了很长时间都找不到问题的答案。

在下面的代码中,当我使用参数“username”从“myView”重定向到“anotherView”时,它按预期工作正常。但是我也需要在此重定向中包含“范围”参数,因为重定向后使用的模板需要此“范围”。每当我尝试这样做时,我都会遇到一些错误,例如:

-- “不要在调用 reverse() 时混合使用 *args 和 **kwargs”

有没有办法按照我想要的方式进行管理?

   def myView(request):
if request.user.is_authenticated():
if request.method == 'POST':
#my code comes here
....
return redirect('anotherView', username=request.user.username, {"range": range(int(layout))})



def anotherView(request,username):
if request.user.is_authenticated():
#my code comes here
....
return redirect(something)

最佳答案

redirect 只是 HttpResponseRedirect 的包装器,它会自动调用 reverse 以创建要重定向到的 URL。因此,您传递给它的参数不是任意的,它们必须与您传递给 reverse 的参数相同,特别是只有创建 URL 所需的参数。

许多人似乎难以理解数据不能随意传递给 View 。 HTTP 是一种无状态协议(protocol):每个请求都独立存在,就好像用户从未访问过站点的任何其他页面一样。创建 session 的概念是为了向诸如站点之类的内聚单元提供“状态”感。对于 session ,数据存储在某种形式的持久存储中,并且将查找该数据的“ key ”提供给客户端(通常是用户的浏览器)。在下一个页面加载时,客户端将 key 发送回服务器,服务器使用它来查找数据以提供状态外观。

因此,如果您需要一个 View 中的数据在另一个 View 中可用,您需要将其添加到 session 中,进行重定向,然后从下一个 View 中查找 session 中的数据。

关于python - 带参数的django redirect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com