Ich brauche Code zum Bearbeiten von Benutzerdetails wie Vorname, Nachname mit Hilfe von APIView-Klasse basiert. Die serializers.py und ansichten.py sind unter, aber es macht nicht die Änderungen entsprechend den Benutzerdetails. Ich gebe Token für die Benutzerauthentifizierung weiter. Jede Hilfe wird geschätzt.Bearbeiten von Benutzerdetails in Python Django Rest Framework
Serializers.py
class UserEditSerializer(serializers.Serializer):
email = serializers.EmailField(required=True)
first_name = serializers.CharField(required=True)
last_name = serializers.CharField(required=True)
def update(self, validated_data, instance):
instance.first_name = validated_data.get('first_name')
instance.email = validated_data.get('email')
instance.last_name = validated_data.get('last_name')
instance.save()
return instance()
Views.py
class UserEditProfile(APIView):
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
def get_object(self):
return self.request.user
def post(self, request):
self.object = self.get_object()
serializer = UserEditSerializer(data=request.data)
if serializer.is_valid():
self.object.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
Überprüfen Sie auch die Update-Signatur Ihres Serializers anhand der Dokumentation. Die Argumentreihenfolge ist falsch. – Linovia
Danke Ich habe es angewendet, aber es gibt einen Integritätsfehler wie zuvor - IntegrityError unter/users/edit-profile UNIQUE Constraint fehlgeschlagen: auth_user.id –