Django:在一个应用程序中阻止对特定用户的访问

2024-09-29 21:49:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个Django项目demonstration,它有3个应用程序(应用程序、博客、前端) enter image description here

我面临的挑战是:

我想限制对应用程序的访问app,只允许注册用户。在

换句话说,限制对appdjango应用程序中所有页面的访问。在

在做了一些调查之后,偶然发现了以下链接:

  1. Link 1
  2. Link 2
  3. Link 3

Link 1中的答案似乎更容易实现。在

尽管如此,我还是有一些问题,因为我在Django中使用中间件的经验很少。在

在评论中问道:

“如果用户没有登录,我想限制一个名为app的应用程序的访问。中间件RequireLoginMiddleware类应该放在哪里在

但到目前为止还没有答复,我似乎也没有找到一个方法来跨越这个问题。在

有人能解释一下我需要做些什么来限制django应用程序中所有页面的访问,只允许注册用户访问?在


Tags: 中间件项目django答案用户app应用程序链接
2条回答

如何修复:

views.py内,从app应用程序目录中, 添加了以下内容:

from django.contrib.auth.decorators import login_required

在调用视图之前:

^{pr2}$

这意味着:一旦用户未登录并尝试访问视图,他/她/它将被重定向到登录屏幕

中间件的位置由您决定,唯一重要的是它在您的sys.path中。在

还要注意,Best way to make Django's login_required the default中的中间件依赖于硬编码的url(好吧,至少在settings中是硬编码的),这是一种干冲突。这个问题可以通过使用reverse_lazy来解决,但是现在只要用login_required装饰你的app视图就可以更快了

相关问题 更多 >

    热门问题