(Django Rest Framework) 사용자 모델을 어떻게 업데이트합니까?

Sep 03 2020

사용자 모델 (APIView에서 Django Rest Framework의 패치 메서드 사용)을 업데이트하려고하지만 계속 오류가 발생합니다.

`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)

사용자 지정 사용자 모델을 만들었는데 사용자 등록을위한 serializer가 제대로 작동하지만이 업데이트 serializer에서 해당 오류가 발생합니다.

답변

4 JPG Sep 03 2020 at 16:11

serializers.ModelSerializer대신 사용serializers.Serializer

class UpdateSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('email', 'first_name', 'last_name', 'phone')