Django在CBV中使用,用户登录验证组件
Posted wtil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django在CBV中使用,用户登录验证组件相关的知识,希望对你有一定的参考价值。
源地址:https://blog.csdn.net/Jamin2018/article/details/79047703
1.CBV模式中,由于View中的视图为类,所有不能像FBV一样使用装饰器,故可以继承一个自定义的类,这个类的功能的验证用户有没有登录,需要登录才能访问这个类
2.utils文件夹中创建mixin_utils.py文件
3..mixin_utils.py代码:
from django.contrib.auth.decorators import login_required from django.utils.decorators import method_decorator class LoginRequiredMixin(object): @method_decorator(login_required(login_url=‘/login/‘)) def dispatch(self,request,*args,**kwargs): return super(LoginRequiredMixin,self).dispatch(request,*args,**kwargs)
4.View.py函数中,相关类需要验证功能直接继承该类。
# 验证有没有权限,即是否登录 from utils.mixin_utils import LoginRequiredMixin class CourseInfoView(LoginRequiredMixin,View):
5.当访问这个CourseInfoView类中,会先判断用户有没有登录。有登录才会继续执行。
类似FBV的django自带的装饰器:
@method_decorator(login_required(login_url=‘/login/‘))
以上是关于Django在CBV中使用,用户登录验证组件的主要内容,如果未能解决你的问题,请参考以下文章