2017-08-15 10 views
0

私の英語を残念に思っています。私はdjango休憩を学んでいると私はトークンの承認を作成したい。私は、チュートリアルでそれをやったが、私はエラーを持って、サーバーにデータを送信する際AuthTokenSerializer。無効なデータ。辞書を期待していましたが、リクエストを受け取りました。 Django

{ 
    "non_field_errors": [ 
     "Invalid data. Expected a dictionary, but got Request." 
    ] 
} 

私の設定ファイル:

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'rest_framework', 
    'rest_framework.authtoken', 

    'users', 
] 

.. 

.. 
REST_FRAMEWORK = { 
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',), 
    'PAGE_SIZE': 10, 
    'DEFAULT_AUTHENTICATION_CLASSES': (
     'rest_framework.authentication.TokenAuthentication', 
     'rest_framework.authentication.BasicAuthentication', 
     'rest_framework.authentication.SessionAuthentication', 
    ) 
} 

私のURL

urlpatterns = [ 
    url(r'^authtoken', views.ObtainAuthToken.as_view()), 
] 

私の見解

class ObtainAuthToken(APIView): 
    permission_classes = (permissions.AllowAny,) 
    serializer_class = AuthTokenSerializer 

    def post(self, request): 
     serializer = self.serializer_class(data=request) 
     serializer.is_valid(raise_exception=True) 
     user = serializer.validated_data['user'] 
     token, created = Token.objects.get_or_create(user=user) 
     return Response({'token': token.key}, status.HTTP_201_CREATED) 

私はなぜ私が持っているか理解していないror

+1

完全なトレースバックを表示できますか?どこでエラーが発生するのですか? – devxplorer

+0

@devxplorerお返事ありがとうございます。私はエラーがありません。ユーザーにログインしようとすると、私は答えません: ''無効なデータです。辞書が必要ですが、リクエストを受け取りました。なぜ。私は間違ってsometingすることができます –

答えて

1

requestだけでなく、request.dataをシリアライザに渡す必要があります。

serializer = self.serializer_class(data=request.data) 
+0

よろしく、ありがとう!愚かな、愚かな間違い((( –

関連する問題