如何使用django process_request更改URL.

zjm*_*126 7 python django url middleware

这是我的代码:

class MobileMiddleware(object):

    def process_request(self, request):
        if request.path.startswith('/core/mypage/'):
            request.path='/core/mypage/?key=value'
            print request.path,'aaaa'
Run Code Online (Sandbox Code Playgroud)

我想key在页面网址添加参数时/core/mypage/,

并且Web浏览器的URL将更改为 http:www.ss.com/core/mypage/?key=value

但是,浏览器中的URL不会更改.

我能做什么?

Ary*_*eer 12

对于googlers - 我使用request.path_info进行了测试.如果要在middlware中更改URL,请在process_request中更改request.path_info .

request.path_info = <change request.path_info>
Run Code Online (Sandbox Code Playgroud)

请注意,我不建议或禁止使用此功能.我只是说如果你想改变网址,这就是你可以做到的.


cwa*_*ole 3

问题是这HttpRequest.path是一个简单的属性。更改它不会为浏览器发出任何新指令。您可能正在寻找重定向方法,该方法实际上会强制浏览器转到其他地方。