django使用装饰器login_required

主要参考django官方文档:https://docs.djangoproject.com/zh-hans/2.1/topics/auth/default/

场景:对于需要登录才能访问的页面,可使用装饰器对视图函数进行装饰;当使用的是基于类的视图时,可在url配置中进行设置

login_required参数:

login_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None)

 使用须知:

1、如果用户没有登录,会重定向到 settings.LOGIN_URL ,并传递绝对路径到查询字符串中。例如: /accounts/login/?next=/polls/3/ 

此处可以:全局配置登录后跳转地址(LOGIN_UR

2、已经登录的用户,继续处理视图逻辑

3、 /accounts/login/?next=/polls/3/ 中的next参数可以通过redirect_field_name参数指定,视图中获取参数的时候注意参数名称对应

4、在登录视图中判断登录后的跳转地址:

 补充:

基于类的视图也可以直接继承LoginRequiredMixin类实现:

from django.contrib.auth.mixins import LoginRequiredMixin

class MyView(LoginRequiredMixin, View):
    login_url = '/login/'
    redirect_field_name = 'redirect_to'

 

原文地址:https://www.cnblogs.com/Xiaojiangzi/p/13042475.html