使用反向和HTTP_REFERER比较两个Urls。

问题描述 投票:0回答:1

我想阻止用户访问某个页面,除非他们已经被重定向。为了做到这一点,我想我这样做。

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

这几乎是完美的,除了 request.META.get('HTTP_REFERER') 返回整个url地址,而 reverse('some_page') 返回网址的缩写。

例如

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语句中同时进行比较,谢谢。

django django-urls
1个回答
0
投票

这工作:)

if(request.META.get('HTTP_REFERER') != request.build_absolute_uri(reverse('some_page'))):
        return redirect('some_page')
© www.soinside.com 2019 - 2024. All rights reserved.