﻿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
19595	The 'redirect' from django.shortcuts does not work in a view function when the only parameter is a URL string	sergzach	nobody	"The fragment of urls.py:


{{{
urlpatterns = patterns('',
    # Examples:
	url(r'^$', 'home.views.home', name='home'),
        url(r'^viewer', 'home.views.viewer', name='viewer'),
    ...
    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
)
}}}

The home/views.py:


{{{
...
def viewer( request ):	

	from django.shortcuts import redirect
	return redirect( '/' )
...
}}}


I tested the redirect in another similar project, in both cases the traceback is similar:

{{{

File ""C:\Python27\lib\site-packages\django\core\handlers\base.py"" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File ""C:\cygwin\home\sergzach\lads\lads\views.py"" in response
  14. 		request, result = view( *args, **kwargs )
File ""C:\cygwin\home\sergzach\lads\home\views.py"" in viewer
  106. 	return redirect( '/' )
File ""C:\Python27\lib\site-packages\django\shortcuts\__init__.py"" in redirect
  70.     return redirect_class(resolve_url(to, *args, **kwargs))
File ""C:\Python27\lib\site-packages\django\shortcuts\__init__.py"" in resolve_url
  143.         return urlresolvers.reverse(to, args=args, kwargs=kwargs)
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in reverse
  496.     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in _reverse_with_prefix
  382.         possibilities = self.reverse_dict.getlist(lookup_view)
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in reverse_dict
  297.             self._populate()
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in _populate
  286.                 lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in callback
  230.         self._callback = get_callable(self._callback_str)
File ""C:\Python27\lib\site-packages\django\utils\functional.py"" in wrapper
  29.         result = func(*args)
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in get_callable
  92.         mod_name, func_name = get_mod_func(lookup_view)
File ""C:\Python27\lib\site-packages\django\core\urlresolvers.py"" in get_mod_func
  142.         dot = callback.rindex('.')

Exception Type: AttributeError at /viewer/
Exception Value: 'TemplateView' object has no attribute 'rindex'
}}}

The function worked in Django-1.3 (I updated from Django-1.3 or some release of Django-1.4). In current releases Django-1.4.3 and Django-1.5c1 it does not work as expected.

[The docs](https://docs.djangoproject.com/en/1.5/topics/http/shortcuts/#django.shortcuts.redirect) says we could pass the string URL as the first parameter."	Bug	closed	Core (URLs)	1.5-beta-1	Normal	invalid			Unreviewed	0	0	0	0	0	0
