1. 程式人生 > >Django-CBV中的使用者登入許可權驗證

Django-CBV中的使用者登入許可權驗證

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/'))