14
This problem is to do with trying to reverse something at import time before the URLs are ready to be reversed. This is not a problem with RedirectView itself – it would happen with anything where you tried to reverse in your urls.py file, or possibly in a file imported by it.
In the development version of Django, there is a function called reverse_lazy
specifically to help in this situation.
If you’re using an earlier version of Django, there is a solution here: Reverse Django generic view, post_save_redirect; error ‘included urlconf doesnt have any patterns’.
9
You need to use “reverse_lazy” that is defined in “django.core.urlresolvers” in Django 1.4 and above.
Here is an example urls.py:
from django.conf.urls import patterns, include, url
from django.views.generic import RedirectView
from django.core.urlresolvers import reverse_lazy
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('apps.website.views',
url(r'^$', 'home', name='website_home'),
url(r'^redirect-home/$', RedirectView.as_view(url=reverse_lazy('website_home')),
name='redirect_home'),
)
So in the above example, the url “/redirect-home” will redirect to “/”. Hope this helps.
- Disabling Django CSRF for views that do not always have a response
- How does Django serve media files?
- Django HTML E-mail template doesn't load css in the e-mail
- How to purge all tasks of a specific queue with celery in python?
8
no need for reverse()
or reverse_lazy()
.
simply specify the pattern_name
parameter:
RedirectView.as_view(pattern_name='account-reco-about-you')
- Django queryset: Exclude list of emails using endswith
- Django Compressor does not minify files
- How to create new resource with foreign key in TastyPie
3
@wtower
pattern_name
will be ok, but you may need to add namespace as below.
RedirectView.as_view(pattern_name='polls:index')
- Is it correct to modify old migration files in Django?
- Setting Django admin display times to local time?
- How to set timeout for database connection in django