Django rest_framework не получает аутентификацию токена - PullRequest
0 голосов
/ 24 февраля 2019

Я сталкиваюсь с некоторыми проблемами при попытке получить аутентификацию токена в Django с помощью django rest_framework

Файлы Serializers.py:

from django.contrib.auth import get_user_model, authenticate
from django.utils.translation import ugettext_lazy as _

from rest_framework import serializers


class AuthTokenSerializer(serializers.Serializer):    
    """create the serializer class for the token"""
    email = serializers.CharField()
    password = serializers.CharField(
        style = {'input-type': 'password'},
        trim_whitespace = False
    )

    def validate(self, attrs):
        """validate and authenticate the user"""
        email = attrs.get('email')
        password  = attrs.get('password')

        user = authenticate(
            request=self.context.get('request'),
            username=email,
            password = password
        )

        if not user:
            msg=_('Unable to authenticate with provided credentials')
            raise serializers.ValidationError(msg, code='authentication')

        attrs['user'] = user
        return attrs

Views.py-файлы:

from rest_framework import generics
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.settings import api_settings

from user.serializers import UserSerializer, AuthTokenSerializer


class CreateTokenView(ObtainAuthToken):
    """obtain a new token for user"""
    serializer_class = AuthTokenSerializer
    renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES

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',

    'core',
    'user',
]

При попытке получить токен я получаю следующие ошибки:

ProgrammingError at /api/user/token/
(1146, "Table 'django.authtoken_token' doesn't exist")

Я пытаюсь применить миграции с помощью команды py manage.py migrateно вывод говорит: Операции для выполнения:

Apply all migrations: admin, auth, authtoken, contenttypes, core, sessions
Running migrations:
  No migrations to apply.
...