LoginRequired?mixin
使用class-based views時(shí),可以使用LoginRequiredMixin實(shí)現(xiàn)與login_required相同的行為。?此mixin應(yīng)位于繼承列表中最左側(cè)的位置。
class?LoginRequiredMixin
如果視圖正在使用此mixin,那么根據(jù)raise_exception參數(shù),未經(jīng)身份驗(yàn)證的用戶的所有請(qǐng)求將被重定向到登錄頁(yè)面或顯示HTTP 403 Forbidden錯(cuò)誤。
您可以設(shè)置AccessMixin的任何參數(shù)來(lái)自定義未授權(quán)用戶的處理:
fromdjango.contrib.auth.mixinsimportLoginRequiredMixinclassMyView(LoginRequiredMixin,View):login_url='/login/'redirect_field_name='redirect_to'
注
就像login_required裝飾器一樣,這個(gè)mixin不會(huì)檢查用戶的is_active標(biāo)志,但默認(rèn)的AUTHENTICATION_BACKENDS拒絕不活動(dòng)的用戶。
老版的Django使用裝飾器login_required來(lái)限制用戶登錄
新版的Dajngo通過(guò)繼承LoginRequiredMixin類來(lái)限制用戶登錄,必須是第一個(gè)繼承,在繼承列表最左側(cè)位置
class TestView(LoginRequiredMixin, View):
? ? pass