Python - (Django Rest フレームワーク) ユーザー モデルを更新するにはどうすればよいですか

okwaves2024-01-25  10

ユーザー モデルを (APIView の Django Rest Framework の patch メソッドを使用して) 更新しようとしていますが、エラーが発生し続けます。

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

カスタム ユーザー モデルを作成しました。ユーザー登録用のシリアライザーは正常に動作しますが、この更新シリアライザーによりエラーが発生します。

コード内で関数 update() が呼び出されているのはどこですか?おそらくpatch()という関数を呼び出そうとしているのでしょうか?スタック トレースをもっと投稿していただけますか (update() がどこにあるかを確認できるようにするため)たとえば、g から呼び出されます)

– ron_g

2020 年 9 月 3 日 9:15



------------------------

serializers.Serializer の代わりに、serializers.ModelSerializer を使用します

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

0

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。