如果用户未登录,则会重定向到项目设置(settings.LOGIN_URL)中定义的登录 URL,并将当前绝对路径,作为 URL 参数("下一个"next)来传递。如果用户成功登录,则会返回到此页面,但这次会进行身份验证。
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
...
在基于类别的视图中,限制对登录用户的访问的最简单方法,是从LoginRequiredMixin派生。
需要在主视图类之前的超类列表中,**首先声明**此 mixin
from django.contrib.auth.mixins import LoginRequiredMixin
class MyView(LoginRequiredMixin, View):
login_url = '/login/'
redirect_field_name = 'redirect_to'
ps:您可以通过request.user.is_authenticated,测试手动执行类似的操作,但装饰器更方便!