Django NotImplementedError:`create()`必须在serializer.serializer继承中实现
我在使用serializer创建auth令牌时出错,我是Django初学者,正在尝试各种方法来解决问题,但没有解决,请任何人都可以在这方面帮助我 文件“/usr/local/lib/python3.7/site packages/rest_framework/serializers.py”,第169行,在create中 raise NOTEImplementedError(“Django NotImplementedError:`create()`必须在serializer.serializer继承中实现,django,django-rest-framework,python-3.7,Django,Django Rest Framework,Python 3.7,我在使用serializer创建auth令牌时出错,我是Django初学者,正在尝试各种方法来解决问题,但没有解决,请任何人都可以在这方面帮助我 文件“/usr/local/lib/python3.7/site packages/rest_framework/serializers.py”,第169行,在create中 raise NOTEImplementedError(“create()必须实现”。) 未实现错误:create()必须实现 class CreateAuthTokenSeria
create()
必须实现”。)
未实现错误: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
通过使用继承的而不是泛型来解决问题。CreateAPIView检查您是否使用了正确的对象 例如,它是
ModelSerializer
,如果我误用了Serializer
,则将发生未实现:
from rest_framework import serializers
from .models import Product
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = '__all__'
由于您使用的是
serializers.Serializer
,因此它没有内置的create()
方法,而不像serializers.ModelSerializer
。可能您正在尝试调用serializer.save()
,如果要保存实例,则需要实现create()
方法。但也许你不需要它。更多信息:Hi Rudra,我不想要Serializer中的create()
方法。Serializer
我想要与此相同的方法[然后从视图中删除任何类似Serializer.save()的代码,然后应该修复它