settings: avatar & username (& little stuff too)

This commit is contained in:
AdrienLSH
2024-03-11 15:21:47 +01:00
parent 6d942eea09
commit c65c986b25
19 changed files with 302 additions and 214 deletions

View File

@ -1,4 +1,3 @@
from rest_framework import permissions
from rest_framework.parsers import MultiPartParser, FormParser
from rest_framework import permissions, status
from rest_framework import viewsets
@ -42,28 +41,35 @@ class ProfileViewSet(viewsets.ModelViewSet):
profile["avatar"] = profile["avatar"][profile["avatar"].find("static") - 1:]
return Response(serializer.data)
class MyProfileViewSet(viewsets.ModelViewSet):
class MyProfileViewSet(viewsets.ModelViewSet):
permission_classes = (permissions.IsAuthenticated,)
authentication_classes = (SessionAuthentication,)
serializer_class = ProfileSerializer
queryset = ProfileModel.objects.all
queryset = ProfileModel.objects.all()
def get_object(self):
obj = self.queryset().get(pk=self.request.user.pk)
obj = self.queryset.get(pk=self.request.user.pk)
return obj
def perform_update(self, serializer, pk=None):
serializer.is_valid(raise_exception=True);
profile: ProfileModel = self.get_object();
avatar = serializer.validated_data.get('avatar');
def perform_update(self, serializer: ProfileSerializer, pk=None):
serializer.is_valid(raise_exception=True)
avatar = serializer.validated_data.get('avatar')
profile: ProfileModel = self.get_object()
if (avatar is not None):
if (profile.avatar.name != "./profiles/static/avatars/default.avif"):
profile.avatar.storage.delete(profile.avatar.name)
profile.avatar = avatar
profile.save()
serializer.save()
def delete_avatar(self, request, pk=None):
profile = self.get_object()
if (profile.avatar.name != './profiles/static/avatars/default.avif'):
profile.avatar.storage.delete(profile.avatar.name)
profile.avatar.name = './profiles/static/avatars/default.avif'
profile.save()
return Response(ProfileSerializer(profile).data)
def retrieve(self, request: HttpRequest, pk=None):
instance: ProfileModel = self.get_object()
instance.avatar.name = instance.avatar.name[instance.avatar.name.find("static") - 1:]