Вопрос

Иногда в своем коде я передаю параметры get с URL-адресами.Один конкретный сценарий заключается в том, что если пользователь не вошел в систему, но вводит URL-адрес страницы, требующей входа в систему, ему необходимо будет сначала войти в систему.

В этом случае у меня может быть такой URL-адрес, как: www.example.com/home/#/main/.

Конец URL-адреса /#/main/ предназначен для angular.Однако в django, когда я выполняю приведенное ниже действие, чтобы получить next параметр выше, я делаю это:

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

Проблема в том, что в данном случае, next предоставляет все, кроме угловой части, так что я получаю: www.example.com/home/.

Есть ли способ получить и оставшуюся часть URL-адреса?

Это было полезно?

Решение

Вы должны закодировать URL-адрес, прежде чем добавлять его в качестве параметра.Тогда он превратится в % 23 и больше не будет разделителем для привязки, который обрабатывается на стороне клиента только так, как описано в KVISH.

Другие советы

Очевидно, вы не можете.Django даже не видит привязку, все это обрабатывается клиентом (браузером).

Как определить привязку в URL-адресе в Django?

Способ, которым я справился с этим, заключается в том, что я использую jQuery для установки скрытого поля ввода в местоположение хэша, которое может быть получено следующим образом:

window.location.hash

Хэш отправляется вместе с формой, и я могу взять его оттуда.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top