Redirect to named url pattern directly from urls.py in django?

If you are on Django 1.4 or 1.5, you can do this:

from django.core.urlresolvers import reverse_lazy
from django.views.generic import RedirectView

urlpatterns = patterns('',
    url(r'^some-page/$', RedirectView.as_view(url=reverse_lazy('my_named_pattern'), permanent=False)),
    ...

If you are on Django 1.6 or above, you can do this:

from django.views.generic import RedirectView

urlpatterns = patterns('',
    url(r'^some-page/$', RedirectView.as_view(pattern_name="my_named_pattern", permanent=False)),
    ...

In Django 1.9, the default value of permanent has changed from True to False. Because of this, if you don’t specify the permanent keyword argument, you may see this warning:

RemovedInDjango19Warning: Default value of ‘RedirectView.permanent’ will change from True to False in Django 1.9. Set an explicit value to silence this warning.

Leave a Comment