-
作为快捷方式,您可以使用方便的
装饰器:login_required()from django.contrib.auth.decorators import login_required @login_required def my_view(request): ...执行以下操作:login_required()- 如果用户未登录,则重定向到
,在查询字符串中传递当前绝对路径。示例:settings.LOGIN_URL/accounts/login/?next=/polls/3/。 - 如果用户已登录,则正常执行视图。视图代码可以自由假设用户已登录。
默认情况下,成功验证后用户应重定向到的路径存储在名为
"next"的查询字符串参数中。如果您希望为此参数使用不同的名称,采用可选的login_required()redirect_field_name参数:from django.contrib.auth.decorators import login_required @login_required(redirect_field_name='my_redirect_field') def my_view(request): ...请注意,如果您为
redirect_field_name提供值,您很可能还需要自定义登录模板,因为存储重定向路径的模板上下文变量将使用redirect_field_name的值作为其键,而不是"next"(默认)。还采用可选的login_required()login_url参数。例子:from django.contrib.auth.decorators import login_required @login_required(login_url='/accounts/login/') def my_view(request): ...请注意,如果您不指定
login_url参数,则需要确保和您的登录视图正确关联。例如,使用默认值,将以下行添加到您的 URLconf:settings.LOGIN_URLfrom django.contrib.auth import views as auth_views path('accounts/login/', auth_views.LoginView.as_view()),还接受视图函数名称和命名的 URL 模式。这允许您在 URLconf 中自由地重新映射您的登录视图,而无需更新设置。settings.LOGIN_URL - 如果用户未登录,则重定向到
本文介绍 django.contrib.auth.decorators.login_required 的用法。
声明
login_required(redirect_field_name='next', login_url=None)
注意
login_required 装饰器不会检查用户的 is_active 标志,但默认的 会拒绝非活动用户。AUTHENTICATION_BACKENDS
也可以看看
如果您正在为 Django 的管理员编写自定义视图(或需要与内置视图使用相同的授权检查),您可能会发现 装饰器是 django.contrib.admin.views.decorators.staff_member_required() login_required() 的有用替代品。
相关用法
- Python Django login用法及代码示例
- Python PIL logical_and() and logical_or()用法及代码示例
- Python PIL logical_xor() and invert()用法及代码示例
- Python Django logout用法及代码示例
- Python logging.handlers.SocketHandler.makePickle用法及代码示例
- Python logging.Logger.debug用法及代码示例
- Python logging.debug用法及代码示例
- Python log10()用法及代码示例
- Python logging.LogRecord用法及代码示例
- Python locals()用法及代码示例
- Python list remove()用法及代码示例
- Python len()用法及代码示例
- Python numpy string less_equal()用法及代码示例
- Python calendar leapdays()用法及代码示例
- Python ldexp()用法及代码示例
- Python list转string用法及代码示例
- Python lzma.LZMACompressor()用法及代码示例
- Python Functools lru_cache()用法及代码示例
- Python scipy linalg.pinv2用法及代码示例
- Python list insert()用法及代码示例
- Python lists转XML用法及代码示例
- Python list pop()用法及代码示例
- Python linecache.getline()用法及代码示例
- Python list index()用法及代码示例
- Python list sort()用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.auth.decorators.login_required。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
