一個(gè)簡(jiǎn)單原始的限制方法是檢查 request.user.is_authenticated() ,然后重定向到登陸頁(yè)面:
from django.http import HttpResponseRedirect def my_view(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/?next=%s' % request.path) # ...
或者顯示一個(gè)出錯(cuò)信息:
def my_view(request): if not request.user.is_authenticated(): return render_to_response('myapp/login_error.html') # ...
作為一個(gè)快捷方式, 你可以使用便捷的 login_required 修飾符:
from django.contrib.auth.decorators import login_required @login_required def my_view(request): # ...
login_required 做下面的事情:
如果用戶(hù)沒(méi)有登錄, 重定向到 /accounts/login/ , 把當(dāng)前絕對(duì)URL作為 next 在查詢(xún)字符串中傳遞過(guò)去, 例如: /accounts/login/?next=/polls/3/ 。
如果用戶(hù)已經(jīng)登錄, 正常地執(zhí)行視圖函數(shù)。 視圖代碼就可以假定用戶(hù)已經(jīng)登錄了。
=
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com