Django-de

Django Dokumentation

django.contrib.redirects

Diese Dokumentation gilt für Djangos Entwicklerversion, die zum Teil erhebliche Unterschiede zur letzten veröffentlichen Version aufweist.

Django kommt mit einer optionalen Umleitungsanwendung. Diese lässt dich einfache HTTP-Umleitungen (Redirects) in einer Datenbank speichern und wickelt die Umleitungen für dich ab.

Installation

Um die Umleitungsanwendung zu installieren, folge diesen Schritten:

  1. Füge 'django.contrib.redirects' in deine INSTALLED_APPS Einstellungen ein.
  2. Füge 'django.contrib.redirects.middleware.RedirectFallbackMiddleware' in deine MIDDLEWARE_CLASSES Einstellungen ein.
  3. Führe den Befehl manage.py syncdb aus.

Wie’s funktioniert

manage.py syncdb erstellt eine django_redirect Tabelle in deiner Datenbank. Das ist eine einfache Nachschlagetabelle mit site_id, old_path (dt. alter Pfad) und new_path (dt. neuer Pfad) Feldern.

Die RedirectFallbackMiddleware erledigt all die Arbeit. Jedesmal wenn irgendeine Django-Webanwendung einen HTTP 404 Statuscode erzeugt, sucht diese Middleware (dt. Dienstschicht) als letzen Ausweg in der Umleitungstabelle nach der angeforderten URL. Genauer gesagt, sucht sie nach einer Umleitung für den gegebenen alten Pfad (old_path) mit der Seiten ID die sich auf die SITE_ID Einstellung bezieht.

  • Wenn sie einen Treffer findet und der neue Pfad (new_path) nicht leer ist, leitet sie die Anfrage an den neuen Pfad weiter.
  • Wenn sie einen Treffer findet und der neue Pfad leer ist, sendet sie einen HTTP 410 Status (“Fort”) und eine leere (inhaltslose) Antwort.
  • Wenn sie keinen Treffer findet, wird die Anfrage normal weiter bearbeitet.

Die Middleware wird nur im Falle von HTTP 404 Statuscodes angesprochen — nicht für 500er oder Antworten jeden anderen Statuscodes.

Beachte, dass die Sortierung der MIDDLEWARE_CLASSES von Bedeutung ist. Generell kannst du die RedirectFallbackMiddleware an das Ende der Liste setzen, da diese den letzten Ausweg darstellt.

Für weitere Informationen über Middlewares, lies bitte die Middleware Dokumentation.

Wie erstellt, ändert und löscht man Umleitungen

Mit der Administrationsoberfläche

Wenn du die automatische Django-Administrationsoberfläche aktiviert hast, solltest du einen “Redirects” Abschnitt in der Übersichtsseite sehen. Ändere Umleitungen, wie du jedes andere Objekt im System auch änderst.

Mit der Python API

Umleitungen stellen ein übliches Django-Datenmodell dar, welches in django/contrib/redirects/models.py zu finden ist. Du kannst Umleitungsobjekte mithilfe der Django-Datenbank-API ansprechen.