from rest_framework import permissions from rest_framework.parsers import MultiPartParser, FormParser from rest_framework import permissions, status from rest_framework import viewsets from rest_framework.response import Response from django.db.models import QuerySet from .serializers import ProfileSerializer from .models import ProfileModel class ProfileViewSet(viewsets.ModelViewSet): queryset = ProfileModel.objects.order_by('-pk') serializer_class = ProfileSerializer parser_classes = (MultiPartParser, FormParser) permission_classes = (permissions.IsAuthenticatedOrReadOnly,) def perform_create(self, serializer): serializer.save(user=self.request.user) def perform_update(self, serializer): query: QuerySet = ProfileModel.objects.filter(pk=self.request.user.pk) if (not query.exists()): return Response("profile not found", status=status.HTTP_400_BAD_REQUEST) profile: ProfileModel = ProfileModel.objects.get(pk=self.request.user.pk) avatar = self.request.data.get("file", None) if (avatar is not None): print(profile.avatar_url.name) if (profile.avatar_url.name != "default.avif"): profile.avatar_url.storage.delete(profile.avatar_url.name) profile.avatar_url = avatar profile.save()