Antworten:
Wenn Sie mit Django 1.4 oder 1.5 arbeiten, können Sie Folgendes tun:
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)),
...
Wenn Sie mit Django 1.6 oder höher arbeiten, können Sie Folgendes tun:
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(pattern_name='my_named_pattern', permanent=False)),
...
In Django 1.9 hat sich der Standardwert von permanentvon True in False geändert. Wenn Sie das permanentSchlüsselwortargument nicht angeben , wird möglicherweise die folgende Warnung angezeigt:
RemovedInDjango19Warning: Der Standardwert von 'RedirectView.permanent' wird in Django 1.9 von True in False geändert. Legen Sie einen expliziten Wert fest, um diese Warnung auszuschalten.
(r'^.*/$', RedirectView.as_view(url='http://newurl.com')),
pattern_nameArguments zur Ausführung der RedirectViewUmkehrung zum Zeitpunkt des Aufrufs unter Verwendung des angegebenen Musternamens. Andere nützliche Parameter sind permanentundquery_string .
Das funktioniert bei mir.
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
Im obigen Beispiel '/'wird auf die Indexseite umgeleitet, auf der Sie auch beliebige URL-Muster hinzufügen können.
RedirectViewhat permanent=Trueals Standard in älteren Versionen von Django, und permanent=Falseals Standard in Django - Versionen> = 1.9.
für 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/', permanent=False)),
path('hola/', include("hola.urls")),
path('admin/', admin.site.urls),
]
permanent=Falseist die Standardeinstellung. Weitere Informationen finden Sie unter: docs.djangoproject.com/de/2.1/topics/http/shortcuts/#redirect developer.mozilla.org/en-US/docs/Web/HTTP/…
Diese Methode wird in älteren Versionen von Django unterstützt, wenn Sie RedirectView nicht unterstützen können
In view.py
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
In der url.py
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
Sie können es dauerhaft machen, indem Sie HttpResponsePermanentRedirect