在视图函数中,有些操作是需要用户在登录前提下才能进行的。
方法一:
采用request方法来得到用户是否登录信息:
if request.user.is_authenticated():
...
else:
return render(requeset, 'login.html')
- 1
- 2
- 3
- 4
方法二:
在试图函数中继承一个基础类,可以判断用户是否登录。
在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)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
在编写视图函数时,继承该类:
from utils import LoginRequiredMixin
class CourseCommentView(LoginRequiredMixin, View):
"""
课程评论
"""
def get(self, request):
pass
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
第二种方式方便很多视图函数的继承,第一种方式用于页面中部分内容的判定。