在视图函数中,有些操作是需要用户在登录前提下才能进行的。下面讲两种方法判断用户是否登录。
方法一:
采用request方法来得到用户是否登录信息:
if request.user.is_authenticated(): ... else: return render(requeset, 'login.html')
方法二:
在试图函数中继承一个基础类,可以判断用户是否登录。
在utils.py中定义一个基础类:
from django.contrib.auth.decorators import login_required from django.utils.decorators import method_decorator class LoginRequiredMixin(object): """ 判断用户是否登录 """ @method_decorator(login_required(login_url='/login/')) def dispatch(self, request, *args, **kwargs): return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
在编写视图函数时,继承该类:
from utils import LoginRequiredMixin class CourseCommentView(LoginRequiredMixin, View): """ 课程评论 """ def get(self, request): pass
第二种方式方便很多视图函数的继承,第一种方式用于页面中部分内容的判定。