ImportError at /
No module named simple
Django Version: 1.5.dev20120710212642
Я установил последнюю версию django. Я использую
from django.views.generic.simple import redirect_to
в моем urls.py. Что не так? Это устарело?
ImportError at /
No module named simple
Django Version: 1.5.dev20120710212642
Я установил последнюю версию django. Я использую
from django.views.generic.simple import redirect_to
в моем urls.py. Что не так? Это устарело?
Используйте представления класса вместо 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
.