Получить оригинальный путь в Джанго - PullRequest
0 голосов
/ 29 ноября 2011

У меня вопрос: как получить текущий путь по URL. Допустим, у меня есть 3 панели навигации, о, блог и страница контактов. На каждой странице у меня есть фейсбук, твиттер и инструкция по электронной почте для друга. Когда я нажал кнопку «Отправить другу по электронной почте», и текущий URL-адрес www.example.com/about, текущий URL-адрес уже является www.example.com/emailafriend. Как я могу получить www.example / about? Также в блоге и в контакте. Пожалуйста, помогите мне. Спасибо.

Ответы [ 3 ]

2 голосов
/ 29 ноября 2011

Как работает кнопка «Отправить другу»?Это представление Django, которое берет текущий URL и отправляет его по электронной почте?Если это так, вам не нужен «текущий» URL, который, как вы заметили, на самом деле является адресом электронной почты друга.Что вы хотите сделать, это передать URL-адрес, которым вы хотите поделиться, в качестве параметра URL-адреса, например:

/ share? Url = http://www.example.com/blog

Добавление дополнительной информации на основе комментариев:

Когда я ссылался на URL выше, я не имел в виду вашу конфигурацию URL django.Давайте сделаем шаг назад.

На вашей странице "О нас" есть ссылка, чтобы написать другу, не так ли?Эта ссылка, вероятно, создается в вашем шаблоне, но она одинакова на каждой странице.Что-то вроде:

<a href="/emailafriend">Email a friend</a>

Вместо этого попробуйте это:

<a href="/emailafriend?url={{ request.get_full_path }}">Email a friend</a>

Теперь вам нужно, чтобы ваш email_a_friend обрабатывал это.Он может получить URL через

request.get('url', '').

Некоторая дополнительная информация:

Возможно, вы захотите экранировать функцию {{request.get_full_path}}, чтобы ее экранировать и URL-адрес был безопасным, тогдаВам придется убрать это с вашей точки зрения.Как только вы вернете URL к своему представлению, вы можете делать с ним все, что пожелаете.

{{ request.get_full_path|urlencode }}
0 голосов
/ 29 ноября 2011

Похоже, вы хотите получить ссылающийся URL (URL, который отправил вас на текущую страницу).Это доступно вам в объекте запроса, хотя и не на 100% надежно:

request.META['HTTP_REFERER']

См. Документацию для объектов HttpRequest для получения дополнительной информации.

0 голосов
/ 29 ноября 2011

Попробуйте использовать относительные URL-адреса, например, от www.example.com/about, чтобы перейти к www.example.com/email, используйте /email.Использование относительных URL-адресов является самым простым решением.

Взгляните на это .

Абсолютные и относительные URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...