Pergunta

Às vezes, no meu código, passo parâmetros get com URLs.Um cenário específico é se o usuário não estiver logado, mas colocar uma URL para uma página que requer login, ele será solicitado a fazer login primeiro.

Nesse caso, posso ter um URL como: www.example.com/home/#/main/.

O fim do URL /#/main/ é para angular.No entanto, no Django, quando faço o seguinte para obter o next parâmetro acima, eu faço isso:

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

O problema é que neste caso, next fornece tudo, menos a parte angular, então obtenho: www.example.com/home/.

Existe alguma maneira de obter também a parte restante do URL?

Foi útil?

Solução

Você deve codificar o url antes de adicioná-lo como parâmetro.Em seguida, ele se transformará em% 23 e não será mais o separador da âncora, que é tratado no lado do cliente apenas conforme descrito pelo KVISH.

Outras dicas

Aparentemente você não pode.Django nem vê a âncora, tudo é tratado no cliente (navegador).

Como identificar uma âncora em uma url no Django?

A maneira de contornar isso é usar jQuery para definir um campo de entrada oculto para o local do hash, que pode ser obtido da seguinte forma:

window.location.hash

O hash é enviado com o formulário e posso retirá-lo a partir daí.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top