【问题标题】:Django redirecting to external url that contains parameters (for development)Django 重定向到包含参数的外部 url(用于开发)
【发布时间】:2023-08-26 09:03:02
【问题描述】:

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

假设我正在使用一个 ajax 调用“/prefix/foo/bar?q=1”的 javascript 库(网址不是我可以更改的)。这对生产服务器来说不是问题,但只有在不使用 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 处理这个问题?

【问题讨论】:

    标签: django url redirect external params


    【解决方案1】:

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

    def redirect_get(request, url, **kwargs):
        if request.META['QUERY_STRING']:
            url += '?%s' % request.META['QUERY_STRING']
        return redirect_to(request, url, **kwargs)
    

    【讨论】:

    • 快速回答并切中要害。谢谢!当然,上面提到的 ajax 调用是行不通的,因为它们是跨域的。为了解决这个问题,我想我应该在 django 中放一些代理代码。
    最近更新 更多