首先我们要知道继承自LoginRequiredMixin的视图类会怎样走,未登录,会执行 handle_no_permission函数,登陆了,就直接继续执行函数下边的代码,如:
class UserCenterInfoView(LoginRequiredMixin, View):
def get(self,request):
return render(request, "user_center_info.html")
未登录,执行handle_no_permission函数,重定向到login_url写的路由那里,如果登录了,就什么也不用管,继续执行return就行。
再然后,我们要知道为什么要对LoginRequiredMixin进行重写,我们先看代码,下方是源码
class AccessMixin:
略~~
def handle_no_permission(self):
if self.raise_exception or self.request.user.is_authenticated:
raise PermissionDenied(self.get_permissio