當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python Django user_passes_test用法及代碼示例

本文介紹 django.contrib.auth.decorators.user_passes_test 的用法。

聲明

user_passes_test(test_func, login_url=None, redirect_field_name='next')

作為快捷方式,您可以使用方便的 user_passes_test 裝飾器,它在可調用返回 False 時執行重定向:

from django.contrib.auth.decorators import user_passes_test

def email_check(user):
    return user.email.endswith('@example.com')

@user_passes_test(email_check)
def my_view(request):
    ...

user_passes_test() 接受一個必需的參數:如果允許用戶查看該頁麵,則該可調用對象接受一個 User 對象並返回 True。請注意, user_passes_test() 不會自動檢查 User 是否不是匿名的。

user_passes_test() 采用兩個可選參數:

login_url
允許您指定未通過測試的用戶將被重定向到的 URL。它可能是一個登錄頁麵,如果您未指定,則默認為 settings.LOGIN_URL
redirect_field_name
login_required() 相同。將其設置為 None 會將其從 URL 中刪除,如果您將未通過測試的用戶重定向到沒有 “next page” 的非登錄頁麵,您可能需要這樣做。

例如:

@user_passes_test(email_check, login_url='/login/')
def my_view(request):
    ...

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.auth.decorators.user_passes_test。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。