2016-09-04 17 views
0

Djangoアプリケーション用のログインAPIViewを作成しました。私は継続的にエラーを取得しています、AttributeError: 'WSGIRequest'オブジェクトには 'session'属性がありません。私は他の投稿を見てきましたし、セッションミドルウェアを配置しているミドルウェアを並べ替えることに言及しています。ここにAPIの設定があります。ログイン時にエラーが発生しています(リクエスト、ユーザー)。Django REST:AttributeError: 'WSGIRequest'オブジェクトに 'session'属性がありません

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) 

答えて

0

私のミドルウェアは、MIDDLEWARE_CLASSESの代わりに自分のsettings.pyにMIDDLEWAREとして定義しました。私が新しいプロジェクトをセットアップしたときにPycharmがそれを生成しました。私はDjango 1.10がMIDDLEWAREを使用していると私は1.9を使用していると信じています。

関連する問題