Сравнение двух URL-адресов с использованием обратного и HTTP_REFERER - PullRequest
0 голосов
/ 27 мая 2020

Я хочу запретить пользователю доступ к определенной странице, если он не был перенаправлен. Для этого я думал, что id сделает следующее:

if(request.META.get('HTTP_REFERER') != reverse('some_page')):
        return redirect('some_page')

Это работает почти идеально, за исключением того, что request.META.get('HTTP_REFERER') возвращает весь URL-адрес, а reverse('some_page') возвращает сокращенный URL.

Например,

request.META.get('HTTP_REFERER') возвращает http://127.0.0.1:8000/page_one/some_page/

reverse('some_page') возвращает /page_one/some_page/

Как я могу добавить (извините, но я не знаю правильного термина) первая часть URL-адреса (http://127.0.0.1: 8000 ) на reverse('some_page'), или удалите ее из request.META.get('HTTP_REFERER'), чтобы их можно было сравнить в инструкции if, пожалуйста? Спасибо.

1 Ответ

0 голосов
/ 27 мая 2020

Это работает :)

if(request.META.get('HTTP_REFERER') != request.build_absolute_uri(reverse('some_page'))):
        return redirect('some_page')
...