iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 29
0
Modern Web

Django案例實作之踩坑全記錄系列 第 29

Django - 會員系統(四)

有時網站部分會限定會員才能觀看,這時可以利用Django提供的裝飾器,來幫助判定目前的使用者是否為會員而進行相對的動作。

補充:記得要在settings.py設定LOGIN_REDIRECT_URL(登入後要轉至的網頁)及LOGOUT_REDIRECT_URL(登出後要轉至的網頁)。

一、限定會員瀏覽

使用'@login_require'來實現會員瀏覽的限定功能,用法如下:

from django.contrib.auth.decorators import login_required

@login_required(login_url='/quiz/login')
def play(request):
    ...
  • 只要不是會員,網頁會轉至login_url指定下的網址,這邊讓他回到登入畫面。
  • 如果事先在settings.py設定LOGIN_URL,這邊就不需要login_url。

二、限定管理者瀏覽

除了限定會員瀏覽,有時還會規劃管理者才能看到的畫面,這時可以用另外一個裝飾器:

from django.contrib.auth.decorators import user_passes_test

@user_passes_test(lambda user:user.is_staff,login_url='/quiz/login')
    def visitor_count(request):
        ....

上一篇
Django - 會員系統(三)
下一篇
Django - 結語
系列文
Django案例實作之踩坑全記錄34

尚未有邦友留言

立即登入留言