Yanıtlar:
Django 1.4 veya 1.5 üzerindeyseniz, bunu yapabilirsiniz:
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 veya üzerindeyseniz, bunu yapabilirsiniz:
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'da, varsayılan değeri True'dan False'a permanent
değiştirildi. Bu nedenle, permanent
anahtar kelime bağımsız değişkenini belirtmezseniz şu uyarıyı görebilirsiniz:
RemovedInDjango19Warning: 'RedirectView.permanent'in varsayılan değeri Django 1.9'da True'dan False'a değişecektir. Bu uyarıyı susturmak için açık bir değer ayarlayın.
(r'^.*/$', RedirectView.as_view(url='http://newurl.com')),
pattern_name
bağımsız değişken iletmek RedirectView
. Diğer kullanışlı parametreler arasında permanent
vequery_string
.
Bu benim için çalışıyor.
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
Yukarıdaki örnekte '/'
, herhangi bir url kalıbı da ekleyebileceğiniz dizin sayfasına yeniden yönlendirileceği anlamına gelir.
RedirectView
vardır permanent=True
Django eski sürümlerinde varsayılan olarak, ve permanent=False
Django sürümlerinde> = 1.9 varsayılan olarak.
django v2 + için
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
varsayılandır. Daha fazla ayrıntı için lütfen okuyun: docs.djangoproject.com/en/2.1/topics/http/shortcuts/#redirect developer.mozilla.org/en-US/docs/Web/HTTP/…
Bu yol, django'nun eski sürümlerinde, RedirectView'ı destekleyemiyorsanız desteklenir
View.py içinde
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
Url.py içinde
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
Kullanarak kalıcı hale getirebilirsiniz HttpResponsePermanentRedirect