django 装饰器检查用户是否登录,否则重定向

Han*_*ong 2 django redirect login

if not request.user.is_authenticated():
    return HttpResponseRedirect(reverse('login_user'))
Run Code Online (Sandbox Code Playgroud)

由于我正在执行上述操作,因此在我的大多数观点中,我认为应该有更好的内容,然后将那篇文章放入我的所有观点中。

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

from django.views.decorators.http import require_http_methods

@require_http_methods(["GET", "POST"])
def my_view(request):
Run Code Online (Sandbox Code Playgroud)

现在我想知道这确实是用装饰器完成的,如果是这样,我该如何翻译它以检查用户是否已登录并以其他方式重定向?

Luk*_*ara 6

您可以使用内置装饰器:

from django.contrib.auth.decorators import login_required

@login_required
def edit_user_profile(request):
    //some code
Run Code Online (Sandbox Code Playgroud)

django login_required 装饰器