如何要求登录访问任何网址djang

2024-09-27 21:24:31 发布

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

我有东西在里面视图.py在

 @login_required()
 def dadmin(request):

我没有在dapost和dapage中使用@login_required()

在网址.py在

^{pr2}$

现在我想要的是每次用户尝试访问domain.com/dadmin/any... 它重定向到登录页面。我该怎么做?不在dapost和dapage中放置@login廑required()?在


Tags: 用户pycom视图requestdomaindefrequired
2条回答

如果您在设置.py公司名称:

https://docs.djangoproject.com/en/1.8/ref/settings/#login-url

所有匿名用户在其视图中使用login\u required()修饰符访问URL时都将被重定向。在

编辑:你也可以用你想要的路径制作一个自定义的LoginRequired中间件。在

您可以通过使用自定义中间件来实现这一点

将此文件另存为主应用程序中的custom_middleware.py文件

from django.shortcuts import redirect


class CheckUser(object):

    def __init__(self, get_response):

        self.get_response = get_response

    def __call__(self, request):

        if not request.user.is_authenticated() and \
                        request.path.startswith('/dadmin/'):
            return redirect("/login/")

        response = self.get_response(request)


        return response

在你的settings.py中编辑middleware

^{pr2}$

相关问题 更多 >

    热门问题