Перенаправить на именованный шаблон url непосредственно из urls.py в django?

В Django, как я могу сделать простое redirect непосредственно из urls.py? Естественно, я хорошо организованный парень, выступающий за принцип DRY, поэтому я хотел бы получить цель на основе ее названного шаблона url, а не жесткого кодирования url.

Если вы находитесь на Django 1.4 или 1.5, вы можете сделать это:

from django.core.urlresolvers import reverse_lazy from django.views.generic import RedirectView urlpatterns = patterns('', url(r'^some-page/$', RedirectView.as_view(url=reverse_lazy('my_named_pattern'), permanent=False)), ... 

Если вы находитесь на Django 1.6 или выше, вы можете сделать это:

 from django.views.generic import RedirectView urlpatterns = patterns('', url(r'^some-page/$', RedirectView.as_view(pattern_name='my_named_pattern', permanent=False)), ... 

В Django 1.9 значение по умолчанию permanent изменилось с True на False. Из-за этого, если вы не укажете аргумент permanent ключевого слова, вы можете увидеть это предупреждение:

RemovedInDjango19Warning: значение по умолчанию для параметра RedirectView.permanent изменится с True на False в Django 1.9. Установите явное значение, чтобы отключить это предупреждение.

Это работает для меня.

 from django.views.generic import RedirectView urlpatterns = patterns('', url(r'^some-page/$', RedirectView.as_view(url='/')), ... 

В приведенном выше примере '/' означает, что он перенаправляется на страницу индекса, где вы также можете добавить любые шаблоны URL.

Этот способ поддерживается в более ранних версиях django, если вы не можете поддерживать RedirectView

В view.py

 def url_redirect(request): return HttpResponseRedirect("/new_url/") 

В url.py

 url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"), 

Вы можете сделать это постоянным, используя HttpResponsePermanentRedirect

Я пытался перенаправить все 404s на домашнюю страницу, и следующее отлично работало:

 from django.views.generic import RedirectView ... under urlpatterns, added: url(r'^.*/$', RedirectView.as_view(url='/home/')), url(r'^$', RedirectView.as_view(url='/home/')), 

для django v2 +

 from django.contrib import admin from django.shortcuts import redirect from django.urls import path, include urlpatterns = [ # this example uses named URL 'hola-home' from app named hola # for more redirect's usage options: https://docs.djangoproject.com/en/2.1/topics/http/shortcuts/ path('', lambda request: redirect('hola-home', permanent=False)), path('hola/', include("hola.urls")), path('admin/', admin.site.urls), ] 
  • Gdb печатать в файл вместо stdout
  • Как перенаправить на другую веб-страницу?
  • Добавление сообщения лиц на перенаправленную страницу с помощью ExternalContext.redirect ()
  • Разница между кодами перенаправления HTTP
  • Сценарий Bash - хранить stderr в переменной
  • Перенаправление stdin и stdout из C
  • Заголовок ответа jQuery и AJAX
  • redirect вывода в текстовый файл c #
  • Переадресация авторизации при истечении срока действия сеанса не работает при отправке формы JSF, страница остается той же
  • В чем разница между redirectм и навигацией / переходом и когда использовать что?
  • Nodejs - перенаправить URL-адрес
  • Interesting Posts

    Что такое ошибка Mongoose Присвоение объекта ObjectId не удалось для значения XXX по пути «_id»?

    Visual Studio – привязка к ярлыку процесса

    Как развернуть приложение на базе EJB на Tomcat

    Exception ‘open failed: EACCES (Permission denied)’ на Android

    Как распечатать PDF на сетевом принтере по умолчанию с помощью команды оболочки GhostScript (gswin32c.exe)

    Должен ли я хранить файл подкачки на SSD-диске?

    Пересылка всех конструкторов в C ++ 0x

    PreparedStatement setNull (..)

    Нет расширения, способного загрузить конфигурацию для «facebookbundle» symfony2

    Перенаправить stdout в файл, когда процесс выполняется в фоновом режиме

    Как разбить стилизованный текст на страницы в Android?

    Некоторые проблемы с ответами с использованием двух сценариев «последовательности клавиш» в Autohotkey

    Быстрый VNC от Windows до Mac?

    Практическое различие между правилами парсера и правилами лексера в ANTLR?

    Как настроить маркер длины строки в vim / gvim?

    Давайте будем гением компьютера.