【问题标题】:Limit access on website's parts (Django)限制对网站部分的访问(Django)
【发布时间】:2011-12-03 16:20:05
【问题描述】:

我有一个网站,我需要限制用户访问网站的各个部分。为简单起见,假设网站处于测试阶段 - 我希望只有注册用户才能看到网站和所有部分。但稍后我会想取消这些限制。

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

我想到的第二件事 - 我可以定义中间件来检查用户是否登录,如果没有 - 将他重定向到登录页面。

我看到模板解决方案不好的地方,因为在我将网站发布到测试版之后,我需要修改很多模板......

我还能在这里选择什么?

谢谢!

【问题讨论】:

标签: django


【解决方案1】:

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

【讨论】:

  • 然后在我退出测试版之后,我需要删除那些@login_required ...我也不喜欢这样,因为我有相同的模块由不同的站点共享,并且在一个站点上我例如,不想限制对它的访问。
  • 在您记录了 urls.py 更改后,我开始喜欢它 :) 需要调查。谢谢!
  • 对不起,Ignas,我误读了你的问题。我觉得您的中间件解决方案可能是最好的主意。考虑撤回我的回答。
  • 其实,现在你提到它,你可以将 login_required 位设置为 settings.py 中的可配置变量。
  • 可能我会使用中间件。感谢 cmets!
猜你喜欢
  • 2019-11-30
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 2014-10-19
  • 2019-11-17
  • 2022-08-04
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多