[Django]-"No module named simple" error in Django

136๐Ÿ‘

โœ…

Use class-based views instead of redirect_to as these function-based generic views have been deprecated.

Here is simple example of class-based views usage

from django.conf.urls import patterns, url, include
from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^about/', TemplateView.as_view(template_name="about.html")),
)

Update

If someone wants to redirect to a URL, Use RedirectView.

from django.views.generic import RedirectView

urlpatterns = patterns('',
    (r'^one/$', RedirectView.as_view(url='/another/')),
)
๐Ÿ‘คAhsan

53๐Ÿ‘

this should work

from django.conf.urls import patterns
from django.views.generic import RedirectView

urlpatterns = patterns('',
    url(r'some-url', RedirectView.as_view(url='/another-url/'))
)
๐Ÿ‘คAdrian Mester

6๐Ÿ‘

Yes, the old function-based generic views were deprecated in 1.4. Use the class-based views instead.

๐Ÿ‘คDaniel Roseman

5๐Ÿ‘

And for the record (no relevant example currently in documentation), to use RedirectView with parameters:

from django.conf.urls import patterns, url
from django.views.generic import RedirectView


urlpatterns = patterns('',
    url(r'^myurl/(?P<my_id>\d+)$', RedirectView.as_view(url='/another_url/%(my_id)s/')),
)

Please note that although the regex looks for a number (\d+), the parameter is passed as a string (%(my_id)s).

What is still unclear is how to use RedirectView with template_name in urls.py.

๐Ÿ‘คWtower

Leave a comment