Fixed #11960 -- Improved error message for redirects. Thanks, mattmcc
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12185 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
cc25361b17
commit
2ef52d0ce2
|
@ -49,6 +49,9 @@ def redirect(to, *args, **kwargs):
|
||||||
try:
|
try:
|
||||||
return redirect_class(urlresolvers.reverse(to, args=args, kwargs=kwargs))
|
return redirect_class(urlresolvers.reverse(to, args=args, kwargs=kwargs))
|
||||||
except urlresolvers.NoReverseMatch:
|
except urlresolvers.NoReverseMatch:
|
||||||
|
# If this is a callable, re-raise.
|
||||||
|
if callable(to):
|
||||||
|
raise
|
||||||
# If this doesn't "feel" like a URL, re-raise.
|
# If this doesn't "feel" like a URL, re-raise.
|
||||||
if '/' not in to and '.' not in to:
|
if '/' not in to and '.' not in to:
|
||||||
raise
|
raise
|
||||||
|
|
|
@ -165,6 +165,12 @@ class ReverseShortcutTests(TestCase):
|
||||||
res = redirect('http://example.com/')
|
res = redirect('http://example.com/')
|
||||||
self.assertEqual(res['Location'], 'http://example.com/')
|
self.assertEqual(res['Location'], 'http://example.com/')
|
||||||
|
|
||||||
|
def test_redirect_view_object(self):
|
||||||
|
from views import absolute_kwargs_view
|
||||||
|
res = redirect(absolute_kwargs_view)
|
||||||
|
self.assertEqual(res['Location'], '/absolute_arg_view/')
|
||||||
|
self.assertRaises(NoReverseMatch, redirect, absolute_kwargs_view, wrong_argument=None)
|
||||||
|
|
||||||
|
|
||||||
class NamespaceTests(TestCase):
|
class NamespaceTests(TestCase):
|
||||||
urls = 'regressiontests.urlpatterns_reverse.namespace_urls'
|
urls = 'regressiontests.urlpatterns_reverse.namespace_urls'
|
||||||
|
|
Loading…
Reference in New Issue