有很多原因需要控制用戶訪問(wèn)站點(diǎn)的某部分。
一個(gè)簡(jiǎn)單原始的限制方法是檢查 request.user.is_authenticated() ,然后重定向到登陸頁(yè)面:
from django.http import HttpResponseRedirectdef 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_requireddef my_view(request): # ...
login_required 做下面的事情:
如果用戶沒(méi)有登錄, 重定向到 /accounts/login/ , 把當(dāng)前絕對(duì)URL作為 next 在查詢字符串中傳遞過(guò)去, 例如: /accounts/login/?next=/polls/3/ 。
如果用戶已經(jīng)登錄, 正常地執(zhí)行視圖函數(shù)。 視圖代碼就可以假定用戶已經(jīng)登錄了。
=
新聞熱點(diǎn)
疑難解答
圖片精選