Question

Parfois, dans mon code, je transmets des paramètres d'obtention avec des URL.Un scénario particulier est que si l'utilisateur n'est pas connecté, mais qu'il met une URL pour une page qui nécessite une connexion, il devra d'abord se connecter.

Dans ce cas, je peux avoir une URL telle que : www.example.com/home/#/main/.

La fin de l'URL /#/main/ est pour angulaire.Cependant, dans Django, lorsque je fais ce qui suit pour obtenir le next paramètre ci-dessus, je fais ceci:

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

Le problème est que dans ce cas, next fournit tout sauf la partie angulaire, j'obtiens donc : www.example.com/home/.

Existe-t-il un moyen d'obtenir également la partie restante de l'URL ?

Était-ce utile?

La solution

Vous devez urlencoder l'URL avant de l'ajouter en tant que paramètre.Ensuite, il se transformera en %23 et ne sera plus le séparateur pour l'ancre, qui est gérée côté client uniquement comme décrit par KVISH.

Autres conseils

Apparemment, vous ne pouvez pas.Django ne voit même pas l'ancre, tout est géré sur le client (navigateur).

Comment identifier une ancre dans une url dans Django ?

Pour contourner ce problème, j'utilise jQuery pour définir un champ de saisie masqué sur l'emplacement de hachage, qui peut être obtenu comme suit :

window.location.hash

Le hachage est soumis avec le formulaire et je peux le récupérer à partir de là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top