2012-10-06 13 views
46

Mögliche Duplizieren:
Django: Redirect to previous page after loginWeiterleiten/Zurück zur gleichen (vorherigen) Seite in Django?

Was die Optionen sind, wenn Sie den Benutzer auf der gleichen Seite in Django zurückkehren wollen und was sind die Vor/Nachteile der einzelnen?

Methoden Ich weiß:

  • HTTP_REFERER
  • GET-Parameter der vorherigen URL
  • Sitzungsdaten enthält, die vorherige URL speichern

Gibt es noch andere?

+8

Der Link sagt: "nach dem Login". Habe ich "nach dem Login" gefragt? Diese Frage kann einen wirklichen Überblick über dieses Thema geben. Es verdient nicht -1, es verdient +1. Jeeez –

+2

im Gegenteil die Logik ist nicht anders als ein Get oder Post, es ist nur eine Umleitung Frage gibt es keine Pro's und Con's beteiligt, bis Sie einige Argumentation zu definieren, ist Ihre Frage breit und ohne ordnungsgemäße Forschung oder Versuch. –

+3

Es ist sehr unterschiedlich. Django Login und Kommentare Weiterleitungen eingebaut ist. Meine Frage ist für die anderen Fälle;) –

Antwort

83

Einer der Weg ist mit HTTP_REFERER Header wie wie folgt:

from django.http import HttpResponseRedirect 

def someview(request): 
    ... 
    return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 

Nicht sicher Nachteile dieses!

+7

Ich denke, der große Nachteil wäre die Tatsache, dass viele Benutzer/Browser den http_referer ausgeschaltet haben. –

+3

Wissen Sie, wie schwierig es ist, den Header auszuschalten? Die meisten Benutzer wissen nicht, was es ist, geschweige denn, wie es ausgeschaltet wird. In Firefox und Chrome müssen Sie die Einstellungen _ manuell bearbeiten (wieder wissen nicht viele, wie das geht); In IE können Sie es überhaupt nicht deaktivieren (es ist automatisch für gesicherte Websites deaktiviert). –

+35

Ich denke, dass es noch besser wäre, auf die Hauptseite der Website umleiten, wenn request.META nicht festgelegt ist: return HttpResponseRedirect (request.META.get ('HTTP_REFERER', '/')) – nickzam

4

Während die Frage und Antwort alt ist, denke ich, es fehlt ein paar Optionen. Ich habe keine Nachteile mit den Methoden gefunden, ich wäre glücklich zu wissen, ob es welche gibt?

Verwandte Themen