﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
21177	redirect() doesn't support redirecting to relative urls	acatton@…	nobody	"Hi,

If we use redirect shortcut to redirect to a relative URL, it fails.

Like in this example:
{{{
from django.conf.urls import patterns, url
from django.shortcuts import redirect

Using redirect to red

urlpatterns = patterns('',
    url(r'^foo/bar/$', lambda request: redirect('../baz/')),
)
}}}

It raises a TypeError:

{{{
Traceback (most recent call last):
  File ""lib/python2.7/site-packages/django/core/handlers/base.py"", line 115, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File ""foo/foo/urls.py"", line 9, in <lambda>
    url(r'^foo/bar/$', lambda request: redirect('../baz/')),
  File ""lib/python2.7/site-packages/django/shortcuts/__init__.py"", line 78, in redirect
    return redirect_class(resolve_url(to, *args, **kwargs))
  File ""lib/python2.7/site-packages/django/shortcuts/__init__.py"", line 151, in resolve_url
    return urlresolvers.reverse(to, args=args, kwargs=kwargs)
  File ""lib/python2.7/site-packages/django/core/urlresolvers.py"", line 496, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File ""lib/python2.7/site-packages/django/core/urlresolvers.py"", line 379, in _reverse_with_prefix
    lookup_view = get_callable(lookup_view, True)
  File ""lib/python2.7/site-packages/django/utils/functional.py"", line 31, in wrapper
    result = func(*args)
  File ""lib/python2.7/site-packages/django/core/urlresolvers.py"", line 97, in get_callable
    mod = import_module(mod_name)
  File ""lib/python2.7/site-packages/django/utils/importlib.py"", line 28, in import_module
    raise TypeError(""relative imports require the 'package' argument"")

}}}

However, it looks like there's support for relative URL:

* https://code.djangoproject.com/ticket/987
* https://github.com/django/django/blob/636860fbfb4e34e08749d4576bc9571028150526/django/core/handlers/base.py#L24
* https://github.com/django/django/blob/51ed1ef1d56b383210830f69594b789ab3457b95/django/shortcuts/__init__.py#L151


Here's my proposed patch in this case: https://github.com/django/django/pull/1670/files"	Bug	closed	Core (URLs)	dev	Normal	fixed	redirect url relative		Accepted	1	0	0	0	0	0
