NotImplementedError: `create ()` должен быть реализован в наследовании serializer.Serializer - PullRequest
0 голосов
/ 13 февраля 2020

Я получаю сообщение об ошибке при создании токена авторизации с использованием сериализатора, я Django начинаю исследовать и пытаюсь найти разные способы решения, но не решить, пожалуйста, кто-нибудь может мне помочь в этом.

Файл "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", строка 169, в create yield NotImplementedError ('create() должно быть реализовано.')

NotImplementedError: create() должно быть реализовано.

class CreateAuthTokenSerializer(serializers.Serializer):
    """Authentication serializer"""

    email = serializers.CharField()
    password = serializers.CharField(
        style={'input_type': 'password'},
        trim_whitespace=False
    )

    def validate(self, attrs):
        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 username and password')
            raise serializers.ValidationError(msg, code='authentication')

        attrs['user'] = user
        return attrs

Заранее спасибо

1 Ответ

0 голосов
/ 13 февраля 2020

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

Решено с использованием ObtainAuthToken, унаследованного вместо generics.CreateAPIView

...