验证用户是否登录的问题

来源:8-7 相关课程推荐

慕后端4419857

2019-01-23

老师,您好!
在您前几个视频中,验证用户是否登录是通过在view里写个判断这种方式:
if request.user.is_authenticated():
if UserFavorite.objects.filter(user=request.user, fav_id=course.id, fav_type=1):

本节您说的方法是在 mixin_utils.py 文件中创建的这个类:
class LoginRequiredMixin(object):

@method_decorator(login_required(login_url='/login/'))
def dispatch(self, request, *args, **kwargs):
    return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)

然后再这个view中继承class CourseInfoView(LoginRequiredMixin, View):
这两种方式的功能是一样的吗?

写回答

1回答

Ethreal

2019-01-24

你好 首先回答你的问题request.user.is_authenticated():  这个是用django自带的auth来判断当前的user是否是登录状态,而之所以要写这个mixin的原因,是之前是函数视图,django对于函数视图有@login_required装饰器来进行验证 对一些需要登录的视图,进行权限验证,但是后来所有的view都改成了类视图 不能直接再用那个装饰器,所以单独写个mixin实现登录验证的功能。这两个的根本区别如果你在其他视图加上这个mixin 用户在没有登录状态下 是直接会被重定向到你设置的登录url是无法访问对应view的页面的。

0
2
慕后端4419857
非常感谢!
2019-01-24
共2条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程