主要参考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'