Переадресация Django на внешний URL, содержащий параметры (для разработки) - PullRequest
0 голосов
/ 06 февраля 2010

При разработке с Django без веб-сервера (обслуживающего непосредственно из Django) у меня возникла проблема с внешними URL-адресами, в которых отсутствует доменная часть и имеют параметры.

Допустим, я использую библиотеку javascript, которая выполняет ajax-вызов к "/ prefix / foo / bar? Q = 1" (URL-адрес не может быть изменен). Это не проблема для производственного сервера, а только проблема, когда веб-сервер не используется. Я могу перенаправить, добавив следующий шаблон в мои 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?

1 Ответ

2 голосов
/ 06 февраля 2010

Вам придется написать свой собственный редирект:

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