In Django, wie kann ich eine einfache Weiterleitung direkt aus urls.py tun? Natürlich bin ich ein gut organisierter Typ, der das DRY-Prinzip bevorzugt, daher möchte ich das Ziel basierend auf dem genannten URL-Muster erreichen, anstatt die URL hart zu kodieren.Umleiten zu named url Muster direkt aus urls.py in Django?
Antwort
Wenn Sie auf Django sind 1.4 oder 1.5, können Sie dies 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 auf Django sind 1.6 oder höher, können Sie dies 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, Der Standardwert permanent
wurde von True in False geändert. Aus diesem Grund, wenn Sie nicht das Schlüsselwort permanent
Argument angeben, können Sie diese Warnung sehen:
RemovedInDjango19Warning: Standardwert von ‚RedirectView.permanent‘ wird von True auf False in Django 1.9 ändern. Legen Sie einen expliziten Wert zum Stummschalten dieser Warnung fest.
Auf diese Weise wird in älteren Versionen von django unterstützt, wenn Sie nicht RedirectView
In view.py
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
Im url.py
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
Sie machen können unterstützen es dauerhaft unter Verwendung HttpResponsePermanentRedirect
Das funktioniert für mich.
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
In obigem Beispiel '/'
bedeutet es zur Indexseite umleitet, wo Sie auch alle URL-Muster hinzufügen.
Nur ein Hinweis, denken Sie daran, dass 'RedirectView' in älteren Versionen von Django standardmäßig' permanent = True' und in Django-Versionen> = 1.9 standardmäßig 'permanent = False' ist. – Flimm
Ich habe versucht, alle 404 s auf der Homepage umzuleiten und die folgende funktionierte prima:
from django.views.generic import RedirectView
...
under urlpatterns, added:
url(r'^.*/$', RedirectView.as_view(url='/home/')),
url(r'^$', RedirectView.as_view(url='/home/')),
- 1. Wie URL-Muster mit Variablen aus urls.py in Django umleiten?
- 2. Django urls.py geben Probleme
- 3. Wie URL-Parameter in Django urls.py
- 4. Django Redirect URL mit Parameter, in der Datei urls.py?
- 5. Django: Formate urlpatterns in urls.py
- 6. django urls: "Django versuchte diese URL-Muster"
- 7. Wie auf die URL-Muster in urls.py des Projekts zugreifen?
- 8. Django mit urls.py Import-App
- 9. Django: Beliebige Anzahl unbenannter urls.py-Parameter
- 10. mit Named-URL in Blade-Vorlage
- 11. Wie alt URL neue URL umleiten django 1.9
- 12. Alte PHP-Links zu Django-URLs umleiten
- 13. Django kann das URL-Muster nicht finden
- 14. Fehler im Django-Lernprogramm: urls.py
- 15. Pfad von urls.py in django ausschließen
- 16. Django - mit regex in urls.py Werte passieren
- 17. Django urls.py Problem übergeben Variablen
- 18. Umleiten und anfordern Login zu schützen Direkt geschrieben URL
- 19. Django 1.9: Übergeben von Argumenten aus urls.py an eine Klassenansicht
- 20. django URL-Muster für% 20
- 21. Django URL-Muster - String-Parameter
- 22. django Website nicht angezeigt wegen urls.py
- 23. Umleiten auf die nächste URL in Django FormView
- 24. Django: Kann nicht bekommen urls.py arbeiten
- 25. Umleiten zu URL in Flask
- 26. Django URL Redirect
- 27. django: umleiten Ausgabe Abmelde functionlaity
- 28. Django URLs direkt zu HTML-Vorlage
- 29. Python django URL umleiten auf machen
- 30. Umleiten zu versteckten URL in Java
Nur eine Notiz, denken Sie daran, dass die RedirectView als Standard permanent = True hat. –
https://docs.djangoproject.com/de/1.7/ref/class-based-views/base/#redirectview – Wtower
Sie können alles umleiten! Wie so: '' '(r '^. */$', RedirectView.as_view (url = 'http: //newurl.com')),' '' – radtek