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 permanent
von True in False geändert. Wenn Sie das permanent
Schlü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_name
Arguments zur Ausführung derRedirectView
Umkehrung zum Zeitpunkt des Aufrufs unter Verwendung des angegebenen Musternamens. Andere nützliche Parameter sindpermanent
undquery_string
.Das funktioniert bei mir.
Im obigen Beispiel
'/'
wird auf die Indexseite umgeleitet, auf der Sie auch beliebige URL-Muster hinzufügen können.quelle
RedirectView
hatpermanent=True
als Standard in älteren Versionen von Django, undpermanent=False
als Standard in Django - Versionen> = 1.9.für django v2 +
quelle
permanent=False
ist 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
In der url.py
Sie können es dauerhaft machen, indem Sie
HttpResponsePermanentRedirect
quelle
Ich habe versucht, alle 404 auf die Homepage umzuleiten, und Folgendes hat hervorragend funktioniert:
quelle