Domanda

A volte nel mio codice che passisco ottenere parametri con gli URL.Uno scenario particolare è se l'utente non è connesso, ma mette un URL per una pagina che richiede il login, sarà necessario prima di accedere.

In tal caso potrei avere un URL come: www.example.com/home/#/main/.

La fine dell'URL /#/main/ è per angolare.Tuttavia, in Django quando faccio il seguente per ottenere il parametro next sopra, lo faccio:

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

Il problema è che in questo caso, next fornisce tutto tranne la parte angolare, quindi ottengo: www.example.com/home/.

C'è comunque per ottenere anche la porzione rimanente dell'URL?

È stato utile?

Soluzione

Devi urlencodica l'URL prima di aggiungerlo come parametro.Quindi si trasformerà in% 23 e non è più il separatore per l'ancoraggio, che viene gestito il lato client solo come Kvish descritto.

Altri suggerimenti

Apparentemente non puoi.Django non vede nemmeno l'ancora, è tutto gestito sul client (browser).

Come identificare un'ancora in un URL inDjango?

Il modo in cui ho aggirato questo è io uso jQuery per impostare un campo di input nascosto nella posizione di hash, che può essere ottenuta come:

window.location.hash
.

L'hash viene inviato con il modulo e posso portarlo da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top