django - 在 Django 中限制未经授权的访问
问题描述
我在 Django 项目中有各种应用程序,但我只希望登录的用户能够访问这些页面。我如何限制对除作为我的主页的登录页面之外的每个页面的访问。例如,mywebsite.com/home/user 应该只对用户可用,如果有人输入它应该将他们重定向到 mywebsite.com
目前我有两个应用程序,主应用程序和主页,我在我的主页应用程序上使用基于类的视图,如何限制对除登录页面之外的所有页面的访问并显示消息?
我想创建一个模板,用户可以查看其他用户个人资料详细信息但不能更改或编辑它们。我该如何执行上述步骤
提前致谢!
解决方案
根据Docs ,您可以使用@login_required装饰基于类的视图
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
@method_decorator(login_required, name='dispatch')
class ClassBasedView(View):
...
...
由于您使用的是基于类的视图,因此您需要添加方法装饰器,否则您可以直接使用@logine_required。
问题的另一部分再次与此分开。
推荐阅读
- android - 如何在 WebView Android App 中启用谷歌翻译
- hibernate - Hibernate Criteria 取第一条记录
- reactjs - 已解决:React Hook useEffect - 重新渲染/重置问题
- netty - fireChannelRead() - 它的语义是什么?
- javascript - React Native,从嵌套在状态中的数组中访问单个元素
- php - 图像在浏览器 chrome 和火狐浏览器上没有显示为较小的图标
- reactjs - React - 在 ssr 之前获取一些数据并在客户端获取一些数据
- flutter - 在颤振中使用 SharedPreferences 时出错
- python - 如何在 django 中一次创建多个具有不同值的对象?
- python - 如何在 roslibpy 上订阅字符串数据?