0

在没有 Web 服务器(直接从 Django 提供服务)的情况下使用 Django 进行开发时,我遇到了缺少域部分具有参数的外部 url 的问题。

假设我正在使用一个对“/prefix/foo/bar?q=1”进行 ajax 调用的 javascript 库(我无法更改 url)。这对生产服务器来说不是问题,但只有在不使用 Web 服务器时才会出现问题。我可以通过将以下模式添加到我的 urlpatters 来重定向:

(r'^prefix/(?P<path>.*)$', 'django.views.generic.simple.redirect_to', {'url': 'htttp://example.com/prefix/%(path)s'}),

但当然 %(path)s 只会包含“foo/bar”而不是“foo/bar?q=1”。

有没有办法用 Django 处理这个问题?

4

1 回答 1

2

您必须编写自己的重定向:

def redirect_get(request, url, **kwargs):
    if request.META['QUERY_STRING']:
        url += '?%s' % request.META['QUERY_STRING']
    return redirect_to(request, url, **kwargs)
于 2010-02-06T07:05:34.410 回答