"Нет модуля с именем простого" ошибка в 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
,