我正在构建一个Django项目demonstration
,它有3个应用程序(应用程序、博客、前端)
我面临的挑战是:
我想限制对应用程序的访问app
,只允许注册用户。在
换句话说,限制对app
django应用程序中所有页面的访问。在
在做了一些调查之后,偶然发现了以下链接:
Link 1中的答案似乎更容易实现。在
尽管如此,我还是有一些问题,因为我在Django中使用中间件的经验很少。在
在评论中问道:
“如果用户没有登录,我想限制一个名为app的应用程序的访问。中间件RequireLoginMiddleware类应该放在哪里在
但到目前为止还没有答复,我似乎也没有找到一个方法来跨越这个问题。在
有人能解释一下我需要做些什么来限制django应用程序中所有页面的访问,只允许注册用户访问?在
如何修复:
在
views.py
内,从app
应用程序目录中, 添加了以下内容:在调用视图之前:
^{pr2}$这意味着:一旦用户未登录并尝试访问视图,他/她/它将被重定向到登录屏幕
中间件的位置由您决定,唯一重要的是它在您的
sys.path
中。在还要注意,Best way to make Django's login_required the default中的中间件依赖于硬编码的url(好吧,至少在
settings
中是硬编码的),这是一种干冲突。这个问题可以通过使用reverse_lazy
来解决,但是现在只要用login_required
装饰你的app
视图就可以更快了相关问题 更多 >
编程相关推荐