Django - 仅允许从特定页面访问URL

时间:2014-11-21 00:05:33

标签: django django-views django-urls

我有一个表格供用户填写<主页> / data。 但是,我希望用户只有在同意某些条款时才能访问该表单,该条款位于<主页> /条款。

有没有办法确保访问的唯一方法< home> / data来自同意按钮<主页> /条款?即只需输入< home> / data to the address bar应该抛出错误或重定向到术语。

如果重要,我不会存储用户(我正在使用会话数据)。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用referer标题(request.META['HTTP_REFERER'])来确定用户来自哪个页面。如果您的视图不存在/重定向回您的条款页面,则您的视图可以阅读此标题并拒绝访问。

对于更可靠的内容,如果您已经在使用会话数据,则可以在用户点击"同意"条款页面上的按钮。也许这是一个表单POST,你在他们同意的会话中设置一个标志,并且视图重定向到/ data页面。

在/ data视图中,如果在会话中未检测到此标记,则可以重定向回术语页面。