Django中间件重写请求?

时间:2011-05-18 12:01:07

标签: django url-routing

我想在URL解析器之前编写用于重写请求(AFAICT request.META['PATH_INFO']的内容)的中间件(或其他方法)。这样我就可以将其作为URL的一个组件来处理,并将其视为另一个视图参数。

这样的事情:

def process_request(self, request):
    request.META['PATH_INFO'] = "string to prefix/" + request.META['PATH_INFO']

但看起来URL解析器首先进入那里。

有没有办法实现这个目标?

我的中间件安装为列表中的第一个。

编辑:为了澄清,我想重写这个请求:

http://something.com/my/view/ => /something.com/my/view http://somethingelse.com/my/view/ => /somethingelse.com/my/view 在url处理程序之前的中间件中等。

我目前正在使用视图装饰器来修改传递给视图函数的kwargs,但它感觉不太正确。


为什么呢?我的应用程序处理来自多个域的请求,我想要一种方法来推断中间件中的域并将其作为视图参数传递。

1 个答案:

答案 0 :(得分:0)

如果您使用wsgi,我认为您可以在.wsgi脚本中进行重写(即在请求发送到django之前)