当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。