Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django decorator检查用户是否登录,否则重定向_Django_Redirect_Login - Fatal编程技术网

django decorator检查用户是否登录,否则重定向

django decorator检查用户是否登录,否则重定向,django,redirect,login,Django,Redirect,Login,由于我在做上述工作,在我的大多数观点中,我认为应该有更好的东西,而不是把它放在我所有的观点中 现在我发现了一些关于装饰师的东西,似乎有点像我想要的: if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('login_user')) 现在我想知道这是否真的是用decorator完成的,如果是这样,我如何翻译它来检查用户是否登录并重定向到其他位置?您可以使用内置decorator: from

由于我在做上述工作,在我的大多数观点中,我认为应该有更好的东西,而不是把它放在我所有的观点中

现在我发现了一些关于装饰师的东西,似乎有点像我想要的:

if not request.user.is_authenticated():
    return HttpResponseRedirect(reverse('login_user'))

现在我想知道这是否真的是用decorator完成的,如果是这样,我如何翻译它来检查用户是否登录并重定向到其他位置?

您可以使用内置decorator:

from django.views.decorators.http import require_http_methods

@require_http_methods(["GET", "POST"])
def my_view(request):

请阅读是否有关于所有内置装饰器的概述?只有当我将登录url设置为“主页”login_url=''时,我才找到此页面。当我实际尝试访问使用@login_required错误的页面时,我会遇到一个错误:“使用参数“()”和关键字参数“{}”的“^$”的反向。如何解决此问题?在登录url中,您应该传递url(或函数名或命名url模式)指向您的登录页面。
from django.contrib.auth.decorators import login_required

@login_required
def edit_user_profile(request):
    //some code