NotImplementedError: `create()` must be implemented in serializer.Serializer inheritance

NotImplementedError: `create()` must be implemented in serializer.Serializer inheritance

我在使用序列化程序创建身份验证令牌时遇到错误,我是 Django 初学者研究者,尝试了各种方法来解决但没有解决,请任何人帮助我解决这个问题。

文件“/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py”,第 169 行,在创建中 raise 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

提前致谢

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

通过使用 ObtainAuthToken inherited 而不是 generics.CreateAPIView

来解决

检查您是否使用了正确的对象,

比如ModelSerializer,如果我误用了Serializer,就会出现NotImplemented:

from rest_framework import serializers

from .models import Product

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = '__all__'