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

标签 python django django-views django-apps django-middleware

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

我面临的挑战如下:

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

换句话说,限制对app django app中所有页面的访问。

经过一些研究,偶然发现了以下链接:

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

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/

相关文章:

python - 删除数据框侧括号中的内容

python - 通过示例了解 LSTM

javascript - UnicodeEncodeError at/notifications/ajax/'ascii' codec can't encode character : ordinal not in range(128)

python - Django Rest Framework Api 查看 GET

python - 检查文本是否以空格开头

python - 比较 Python 中两个列表的每一项

python - 如何在 CircleCI 2.0 中显式添加项目到 Python 路径?

python - Django 过滤器根据多个条件在 order_by 之后返回重复项

Django 编辑个人资料 View 不保存新电子邮件值

python - 在夹层中切换数据库后端