Как я могу обновить свой профиль пользователя с помощью сериализатора. Я получил эту ошибку, когда обновляю свой профиль пользователя: напишите явный метод .update()
для сериализатора accounts.serializers.AccountProfileSerializer
или установите read_only=True
в поля сериализатора с точечным источником.
class AccountProfileSerializer(serializers.ModelSerializer):
gender = serializers.CharField(source='accountprofile.gender')
phone = serializers.CharField(source='accountprofile.phone')
location = serializers.CharField(source='accountprofile.location')
birth_date = serializers.CharField(source='accountprofile.birth_date')
biodata = serializers.CharField(source='accountprofile.biodata')
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'last_login', 'date_joined',
'gender', 'phone', 'location', 'birth_date', 'biodata')
class AccountProfileViewSet(APIView):
permission_classes = [
permissions.IsAuthenticated,
]
def get(self, request, format=None):
profile = User.objects.get(pk=self.request.user.pk)
serializer = AccountProfileSerializer(profile, many=False)
return Response(serializer.data)
def put(self, request):
profile = User.objects.get(pk=self.request.user.pk)
serializer = AccountProfileSerializer(profile, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)