首页 > 解决方案 > 在 Django 中限制未经授权的访问

问题描述

我在 Django 项目中有各种应用程序,但我只希望登录的用户能够访问这些页面。我如何限制对除作为我的主页的登录页面之外的每个页面的访问。例如,mywebsite.com/home/user 应该只对用户可用,如果有人输入它应该将他们重定向到 mywebsite.com

目前我有两个应用程序,主应用程序和主页,我在我的主页应用程序上使用基于的视图,如何限制对除登录页面之外的所有页面的访问并显示消息?

我想创建一个模板,用户可以查看其他用户个人资料详细信息但不能更改或编辑它们。我该如何执行上述步骤

提前致谢!

标签: djangodjango-modelsdjango-viewsdjango-templates

解决方案


根据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。

问题的另一部分再次与此分开。


推荐阅读