Django-CBV中的使用者登入許可權驗證
阿新 • • 發佈:2019-01-03
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/'))