我正在构建一个 Django 项目 demonstration
,其构成中包含 3 个应用程序(应用程序、博客、前端)
我面临的挑战如下:
我想限制对应用 app
的访问,只允许注册用户。
换句话说,限制对app
django app中所有页面的访问。
经过一些研究,偶然发现了以下链接:
Link 1中的答案似乎更容易实现。
不过,我在做这件事时遇到了一些问题,因为我在 Django 中使用中间件的经验很少。
在评论中询问:
'如果用户没有登录,我想限制一个名为 app 的应用程序的访问。中间件 RequireLoginMiddleware 类应该放在哪里?'
但到目前为止还没有回复,我似乎没有找到解决这个问题的方法。
任何人都可以向我解释我需要做什么来限制对 django 应用程序中所有页面的访问以仅允许注册用户吗?
最佳答案
您的中间件位于何处由您决定,唯一重要的是它位于您的 sys.path
中。
另请注意 Best way to make Django's login_required the default 中的中间件依赖于硬编码 url(好吧,至少在 settings
中硬编码),这是 DRY 违规行为。这可以通过为您的 app
应用程序的每个 url 使用 reverse_lazy
来解决,但此时您只需装饰您的 app
View 就会更快需要登录
关于python - Django:阻止访问一个应用程序中的特定用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625093/