2012-02-16 52 views
4

当我得到一个包含单词'self'的路径的请求时,我想在将它与URL匹配之前用它替换它。我尝试使用这样的中间件:有没有办法在匹配url之前改变request.path?

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

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

回答

6

显然,URL游行没有使用request.pathrequest.path_info完成。改变这个变量的同一个中间件工作。

1

为什么你想改变网址,然后匹配新的网址?为什么不把网址直接指向你想要的视图和方法,然后像你一样在request.user.id上工作,你会不会改变url?

也许另一个例子会说明你正在尝试做什么。

(使之成为一个答案,因为我不能评论)

+0

我不想修改应用程序,我不得不在每个视图中都这样做。像这样的东西似乎是一个更好的选择。 – manuel 2012-02-16 23:46:24

+0

但是如果你用编号为 – 2012-02-17 00:05:00

+0

的号码替换'self',你将不得不编辑视图。意见已经把id作为参数 – manuel 2012-02-17 00:15:16

相关问题