#python #django #django-rest-framework
#python #django #django-rest-framework
Вопрос:
Я пытаюсь обновить пользовательскую модель (с помощью метода исправления Django Rest Framework в APIView), но я продолжаю получать ошибку.
`NotImplementedError: update() must be implemented.`
Вот мой сериализатор:
class UpdateSerializer(serializers.Serializer):
class Meta:
model = User
fields = ('email', 'first_name', 'last_name',
'phone')
Вот мое мнение:
class UpdateUser(APIView):
permission_classes = [
permissions.IsAuthenticated,
]
def patch(self, request):
"""
`Update User`
"""
user = self.request.user
serializer = UpdateSerializer(user, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Я создал пользовательскую модель пользователя, мой сериализатор для регистрации пользователей работает нормально, но этот сериализатор обновления выдает эту ошибку
Комментарии:
1. Где в вашем коде вызывается функция
update()
? Возможно, вы пытаетесь вызвать вызываемую функциюpatch()
? Можете ли вы опубликовать больше трассировки стека (чтобы мы могли видеть, откудаupdate()
вызывается, например)
Ответ №1:
Используйте serializers.ModelSerializer
вместо serializers.Serializer
class UpdateSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('email', 'first_name', 'last_name', 'phone')