Frage

Manchmal übergebe ich in meinem Code Get-Parameter mit URLs.Ein bestimmtes Szenario besteht darin, dass der Benutzer sich zuerst anmelden muss, wenn er nicht angemeldet ist, aber eine URL für eine Seite eingibt, die eine Anmeldung erfordert.

In diesem Fall habe ich möglicherweise eine URL wie: www.example.com/home/#/main/.

Das Ende der URL /#/main/ ist für eckig.Allerdings in Django, wenn ich das Folgende mache, um das zu bekommen next Parameter oben, ich mache das:

self.request.GET.get('next', self.redirect_url)

Das Problem besteht darin, dass in diesem Fall next liefert alles außer dem Winkelteil, also erhalte ich: www.example.com/home/.

Gibt es überhaupt eine Möglichkeit, auch den restlichen Teil der URL abzurufen?

War es hilfreich?

Lösung

Sie müssen die URL urlencodieren, bevor Sie sie als Parameter hinzufügen.Dann wird daraus %23 und nicht mehr das Trennzeichen für den Anker, was clientseitig nur wie von KVISH beschrieben gehandhabt wird.

Andere Tipps

Anscheinend kannst du das nicht.Django sieht nicht einmal den Anker, alles wird vom Client (Browser) verwaltet.

Wie identifiziere ich einen Anker in einer URL in Django?

Um dies zu umgehen, verwende ich jQuery, um ein verstecktes Eingabefeld auf den Hash-Speicherort festzulegen, den ich wie folgt erhalten kann:

window.location.hash

Der Hash wird mit dem Formular übermittelt und ich kann ihn von dort übernehmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top