Django REST:AttributeError:'WSGIRequest'对象没有属性'session'

时间:2016-09-04 01:37:55

标签: python-3.x django-rest-framework django-1.9

我为我的Django应用程序创建了一个Login APIView。我不断得到错误,AttributeError:'WSGIRequest'对象没有属性'session'。我看过其他帖子,人们提到重新排序中间件放置sessionMIddleware首先不起作用。这是API的设置。登录时发生错误(请求,用户)。

from django.contrib.auth import authenticate, login
from rest_framework.views import APIView
from rest_framework.response import Response
from .serializers import LoginSerializer
from rest_framework.permissions import AllowAny


class Login(APIView):
    permission_classes = (AllowAny, )
    authentication_classes = ()
    serializer = LoginSerializer

    def post(self, request, format=None):
    login_form = self.serializer(data=request.data)
    data = dict()
    if login_form.is_valid():
        username = login_form.data['username']
        password = login_form.data['password']
        user = authenticate(username=username, password=password)

        if user is not None:
            print(request.data)
            login(request, user)
            data['data'] = 'OK'
            return Response(data=data, status=200)
        else:
            data['error'] = 'Invalid login information provided'
            return Response(data=data, status=401)
    else:
        data['invalid'] = 'Bad Request, form is invalid'
        return Response(data=data, status=400)

1 个答案:

答案 0 :(得分:0)

好的,我在settings.py而不是MIDDLEWARE_CLASSES中将我的中间件定义为MIDDLEWARE。当我设置新项目时,Pycharm为我生成了它。我相信Django 1.10使用MIDDLEWARE而我使用的是1.9。