ユーザー モデルを (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