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__'
我在使用序列化程序创建身份验证令牌时遇到错误,我是 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__'