"Нет модуля с именем простого" ошибка в Django

ImportError at /
No module named simple

Django Version: 1.5.dev20120710212642

Я установил последнюю версию Django. я использую

from django.views.generic.simple import redirect_to

в моем urls.py. Что случилось? Это устарело?

4 ответа

Решение

Используйте представления на основе классов вместо redirect_to так как эти основанные на функциях общие представления устарели.

Вот простой пример использования представлений на основе классов

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")),
)

Обновить

Если кто-то хочет перенаправить на URL, используйте RedirectView.

from django.views.generic import RedirectView

urlpatterns = patterns('',
    (r'^one/$', RedirectView.as_view(url='/another/')),
)

Это должно работать

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

urlpatterns = patterns('',
    url(r'some-url', RedirectView.as_view(url='/another-url/'))
)

Да, старые основанные на функциях общие представления были объявлены устаревшими в 1.4. Вместо этого используйте представления на основе классов.

И для записи (нет соответствующего примера в настоящее время в документации), чтобы использовать RedirectView с параметрами:

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/')),
)

Обратите внимание, что хотя регулярное выражение ищет число (\d+), параметр передается в виде строки (%(my_id)s).

Что до сих пор неясно, как использовать RedirectView с template_name в urls.py,

Другие вопросы по тегам