2011-12-03 150 views
0

我有网站,我需要限制用户访问该网站的部分。让它简单让我们说,虽然网站是在测试版 - 我只想注册用户可以看到网站和所有的部分。但后来我想要删除这些限制。限制访问网站的部分(Django)

我能做些什么 - 在模板级别执行此登录。像所有的模板一样,我可以有{% if user.is_authenticated %},然后只是显示一些消息,如果没有。

第二件事在我脑海中 - 我可以定义中间件,它将检查用户是否已登录,如果没有,则将其重定向到登录页面。

我看到有关模板解决方案坏事,因为以后我会发布在网站的测试版,我将需要修改很多模板...

还有什么我可以选择在这里?

谢谢!

+0

可能的重复[最佳方式使Django的login_required默认](http://stackoverflow.com/questions/2164069/best-way-to-make-djangos-login-required-the-default) –

回答

0

您必须标记与login_required decorator有关的所有方法或类。如果您使用的是通用视图,请在urls.py中定义它们时设置login_required=True

+0

然后在我将移出测试版之后,我需要删除这些@login_required ...此外,我不喜欢这样做,因为我拥有相同的模块,这些模块由单独的站点共享,并且在一个站点上,我不想限制其访问例。 –

+0

当你把关于urls.py更改的注释写完后,我开始喜欢它了:)需要调查。谢谢! –

+0

对不起,我误解了你的问题。我觉得你的中间件解决方案可能是最好的主意。考虑我的回答撤回。 –