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