7

当我收到对包含单词“self”的路径的请求时,我想在将其与 URL 匹配之前将其替换为用户 ID。我尝试使用这样的中间件:

def process_request(self, request):
    if '/self/' in request.path:
        request.path = request.path.replace('/self/','/' + str(request.user.id) + '/')

替换工作,但显然是在 URL 匹配之后完成的。在此之前有什么方法可以改变路径吗?

4

2 回答 2

10

显然,URL 行进不是使用request.pathbut完成的request.path_info。更改此变量的相同中间件有效。

于 2012-02-17T11:29:04.343 回答
1

为什么要更改 url,然后匹配新的 url?为什么不将 url 直接指向您想要的视图和方法,然后像更改 url 一样处理 request.user.id ?

也许另一个例子可以说明你想要做什么。

(因为我无法发表评论,所以将此作为答案)

于 2012-02-16T23:37:48.753 回答