将视图/ url限制为Django中的当前会话

时间:2016-02-21 19:54:29

标签: python django

我创建了一个表单,允许您使用内置模块中内置的Djangos创建新站点。我为它设置了一个网址,视图和模板。一切都按预期工作。

成功创建网站后,用户将转到网址/welcome/。但后来我意识到每个试图访问该URL的人都会看到欢迎内容。包括谷歌。那不是我想要的。

我想将此网址限制为当前会话,并在其他人尝试访问该网址时也为登录用户提供404页面。我查看了Djangos视图装饰器,但没有找到满足我特殊需求的装置。

这可能吗?

修改

澄清:

我想在实际创建网站后只显示/welcome/。创建此站点的用户仅具有显示该页面的权限。对于试图显示页面的其他人,它将引发404(未找到)错误。

1 个答案:

答案 0 :(得分:0)

我不完全确定您想要什么,但如果您想限制某个网站的观看次数,可以使用get_current_site()

current_site = get_current_site(request) 
if not current_site.domain == 'foo.bar.com':
    raise Http404

使用request.user访问当前用户。

您可以在自己的视图装饰器中实现此检查,也可以在自定义Django中间件中实现。