AttributeError: ‘xxx’ object has no attribute ‘session’
出现这个错误呢,是你在使用装饰器验证用户是否登录的时候,装饰器函数里面用到了request参数,从request.session中获取用户是否登录。错误原因是你的装饰器用法错误。
装饰器
def check_login(func):
@wraps(func)
def wrappers(request,*args, **kwargs):
if request.session.get('is_login', False):
return func(request, *args, *kwargs)
else:
# 获取用户当前访问的url,并传递给/user/login/
next = request.get_full_path()
print("check_login",next)
#return redirect("/Calibration/login/")
red = HttpResponseRedirect('/xxx/login/?next=' + next)
return red
return wrappers
正确使用方法
from django.utils.decorators import method_decorator
class Create_model(View):
@method_decorator(check_login)
def get(self, request):
pass
def post(self, request):
pass