Ich verwende derzeit die folgende Funktion, um eine verweisende Ansicht zu erhalten:
def get_referer_view(request, default=None):
referer = request.META.get('HTTP_REFERER')
if not referer:
return default
# remove the protocol and split the url at the slashes
referer = re.sub('^https?:\/\/', '', referer).split('/')
if referer[0] != request.META.get('SERVER_NAME'):
return default
# add the slash at the relative path's view and finished
referer = u'/' + u'/'.join(referer[1:])
return referer
Wenn ich das view
als Ergebnis programmatischer Logik umleitete , z.
return HttpResponseRedirect('dashboard')
... gibt es eine Möglichkeit, die verweisende Ansicht ohne Verwendung HTTP_REFERER
abzurufen, damit ich diese Variable in der umgeleiteten verwenden kann view
? Dies wird nicht immer in den Headern des Browsers festgelegt.
Beachten Sie, dass ich POST nicht zum Sammeln der Daten verwenden kann, da die Ansichten programmgesteuert umgeleitet werden.
Vielleicht ist es möglich, einen benutzerdefinierten Header irgendwie zu setzen und abzurufen?
HttpResponseRedirect
ist nicht wirklich programmatisch - es gibt die tatsächliche http 302-Antwort zurück und zwingt den Browser, eine neue Anfrage an die neue URL der Ansicht zu
?came_from=inbox
. Verknüpft, Facebook, andere scheinen es zu tun, also sollte es in Ordnung sein, zu üben.