回答:
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では、のデフォルト値がpermanentTrueからFalseに変更されました。このため、permanentキーワード引数を指定しないと、次の警告が表示されることがあります。
RemovedInDjango19Warning:Django 1.9では、「RedirectView.permanent」のデフォルト値がTrueからFalseに変更されます。明示的な値を設定して、この警告を止めます。
(r'^.*/$', RedirectView.as_view(url='http://newurl.com')),
pattern_name引数を渡すと、指定さRedirectViewれたパターン名を使用して呼び出し時に逆方向に実行されます。その他の便利なパラメータには、permanentおよびがありquery_stringます。
これでうまくいきます。
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
上記の例'/'は、URLページを追加できるインデックスページにリダイレクトすることを意味します。
RedirectViewているpermanent=Trueジャンゴの古いバージョンでは、デフォルトとして、そしてpermanent=FalseDjangoのバージョン> = 1.9のデフォルトとして。
ジャンゴ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/', permanent=False)),
path('hola/', include("hola.urls")),
path('admin/', admin.site.urls),
]
permanent=Falseと、デフォルトです。詳細についてお読みください: docs.djangoproject.com/en/2.1/topics/http/shortcuts/#redirect developer.mozilla.org/en-US/docs/Web/HTTP/...
RedirectViewをサポートできない場合、この方法は古いバージョンのdjangoでサポートされています
view.py
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
url.py
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
あなたはそれを永久的にすることができます HttpResponsePermanentRedirect