我不知道这是否是可能的,但我想在使用中间件的URL的末尾添加几个参数。能不能做到人无modyfing请求的URL重定向后?

即。 用户点击:... / some_link 和中间件其重写为:?... / some_link PAR1 = 1&PAR2 = 2

其他的方法是修改作出反应并更换所有的HTML链接,但它不是我想要做的。

由于

有帮助吗?

解决方案

我觉得这真的取决于你的问题,正是你正在尝试做的。

您不能没有重定向用户更改URL,因为你不能修改一个页面上的URL没有重装。基本上是一个重定向是告诉用户移动上的响应,没有办法真正改变的URL。需要注意的是,即使你在类似的JavaScript做它,你基本上做的是一样的重定向,所以它不能做客户端或服务器端。

我想,如果你为什么你需要传递通过URL这个信息给我们讲解一下它可能的帮助。为什么数据未存储在会话?

我想你可以将数据添加到请求对象,但不把它添加到URL。

其他提示

class YourRedirectMiddleware:

    def process_request(self, request):
        redirect_url = request.path+'?par1=1&par2=2'
        return HttpResponsePermanentRedirect(redirect_url)

什么是你想实现的目标以及为什么这样?

您可以做任何你在中间件喜欢。您可以访问请求对象,你可以得到的网址,如果你想重定向到一个新的。

我的问题是,你为什么要这么做?如果您需要保留有关请求的信息,正确的地点做,这是在会话。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top