我想在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,但它感觉不太正确。
为什么呢?我的应用程序处理来自多个域的请求,我想要一种方法来推断中间件中的域并将其作为视图参数传递。
答案 0 :(得分:0)
如果您使用wsgi,我认为您可以在.wsgi脚本中进行重写(即在请求发送到django之前)